从Dataflow流式传输时从BigQuery删除数据

时间:2018-05-07 15:43:19

标签: google-bigquery google-cloud-dataflow apache-beam google-cloud-pubsub

从Apache Beam管道加载数据时,是否可以从BigQuery表中删除数据。

我们的用例是这样的,我们需要根据时间戳字段(Dataflow从Pubsub主题中提取消息的时间)从表中删除3天前的数据。

建议做这样的事吗?如果是的话,有没有办法实现这个目标?

谢谢。

1 个答案:

答案 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 - 但它处于测试阶段 - 可靠运行,但这是您的通话