流插入,然后定期合并到 Dataflow 管道中的 BigQuery [关闭]

Posted

技术标签:

【中文标题】流插入,然后定期合并到 Dataflow 管道中的 BigQuery [关闭]【英文标题】:Stream-insert and afterwards periodically merge into BigQuery within Dataflow pipeline [closed] 【发布时间】:2021-12-02 11:21:23 【问题描述】:

在构建旨在将 BigQuery 中每个键的最新数据存储到的数据流管道时,这是一种有效的方法

    将事件流式插入到分区临时表中 定期合并(更新/插入)到目标表中,(这样只有键的最新数据才会存储在该表中)。要求每 2-5 分钟进行一次合并,并考虑暂存表中的所有行。

这种方法的想法取自谷歌项目https://github.com/GoogleCloudPlatform/DataflowTemplates, com.google.cloud.teleport.v2.templates.DataStreamToBigQuery

到目前为止,它在我们的测试中运行良好,这里的问题源于 Google 在其文档中声明的事实:

“最近使用流式传输(tabledata.insertall 方法或 Storage Write API)写入表的行无法使用 UPDATE、DELETE 或 MERGE 语句进行修改。” https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language#limitations

有人在生产数据流管道中走这条路并获得稳定的积极结果吗?

【问题讨论】:

【参考方案1】:

经过几个小时和一些思考,我想我可以回答我自己的问题:由于我只流到临时表并合并到目标表中,因此该方法非常好。

【讨论】:

【参考方案2】:

我昨天做了这个,时间延迟大约是 15-45 分钟。如果您有摄取时间列/字段,您可以使用它来限制您是 UPDATEing 的行。

【讨论】:

以上是关于流插入,然后定期合并到 Dataflow 管道中的 BigQuery [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

数据流:我可以使用批处理作业连续写/流写入BigQuery吗?

Dataflow 大型侧输入中的 Apache Beam

到 Cloud Bigtable 的 Google Cloud Dataflow 管道中的异常

来自 Dataflow 的 BigQuery 流式插入 - 没有结果

通过 Google Cloud Dataflow 将 PubSub 消息插入 BigQuery

BigQuery 中的数据流/Beam 流式插入导致 SSL 错误