从Apache Beam管道加载数据时,是否可以从BigQuery表中删除数据。
我们的用例是这样的,我们需要根据时间戳字段(Dataflow从Pubsub主题中提取消息的时间)从表中删除3天前的数据。
建议做这样的事吗?如果是的话,有没有办法实现这个目标?
谢谢。
答案 0 :(得分:2)
我认为这样做的最佳方法是将表设置为分区(基于摄取时间)表https://cloud.google.com/bigquery/docs/partitioned-tables 您可以手动删除旧分区
bq rm 'mydataset.mytable$20160301'
您还可以设置到期时间
bq update --time_partitioning_expiration [INTEGER] [PROJECT_ID]:[DATASET].[TABLE]
如果摄取时间对您不起作用,您可以查看https://cloud.google.com/bigquery/docs/creating-column-partitions - 但它处于测试阶段 - 可靠运行,但这是您的通话