【发布时间】:2017-08-13 19:13:04
【问题描述】:
Google BigQuery 没有主键或唯一约束。
我们不能使用传统的 SQL 选项,例如 insert ignore 或 insert on duplicate key update,那么如何防止重复记录被插入到 Google BigQuery 中?
如果我必须先调用 delete(基于我自己系统中的唯一键)然后插入以防止将重复记录插入 bigquery,那会不会太低效?我会假设插入是最便宜的操作,没有查询,只是追加数据。对于每个插入,如果我必须调用 delete,这将太低效并且花费我们额外的钱。
根据您的经验,您有什么建议和建议?
bigquery 有主键就好了,但它可能与 bigquery 所基于的算法/数据结构冲突?
【问题讨论】:
-
你在直播吗?流式处理根据您提供的 id 在时间范围内防止重复记录
-
我不熟悉 bigquery 上的流式传输。我们在 bigquery 中设置传输以从 Youtube 报告中提取数据。有时传输没有得到我们想要的报表数据(可能数据还没有准备好)。我们必须重新运行传输以提取丢失的报告。谷歌告诉我们,即使我们重新运行转账,也不会出现重复记录。是使用流式传输的 bigquery 传输吗?重复的来自本地数据库。我也需要将本地 mysql 数据库中的数据加载到 bigquery 中。我必须在应用程序级别阻止它。我会看看流媒体解决方案。
标签: google-bigquery