gpt4 book ai didi

google-bigquery - Apache 光束 : Update BigQuery table row with BigQueryIO

转载 作者:行者123 更新时间:2023-12-05 00:14:51 31 4
gpt4 key购买 nike

我们使用以下代码将记录写入 BigQuery:

BigQueryIO.writeTableRows()
.to("table")
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
.withSchema(schema);

使用此代码,当我们进行回填时,某些记录会再次发送到此数据流,从而导致 BigQuery 表中出现重复项。有没有办法配置 upsert基于数据流中的字段名称的操作?

最佳答案

我有一个非常相似的用例,我们决定通过在表顶部创建一个 View 来解决这个问题,该 View 对数据进行重复数据删除,并将访问原始表的任何内容指向现在从该 View 查询。

BigQuery deduplication and partitioned table是很好的引用。照原样 https://wecode.wepay.com/posts/bigquery-wepay

本质上,您需要确保您有某种 last_updated 列,以及唯一标识该行的 id 列。然后你可以创建一个 View 来获取每个 id 的最新版本的所有数据。由于您正在查询 View ,可能会有一些小的性能损失,但我们发现它可以忽略不计。

关于google-bigquery - Apache 光束 : Update BigQuery table row with BigQueryIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46076914/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com