首页 > 解决方案 > 从其他 Google Cloud 服务流式传输数据时,是否可以修复失败的 BigQuery 插入?

问题描述

BigQuery 提供 insertIds 并执行一些重复数据删除,以帮助解决通过 API 插入数据时的故障情况。根据文档,BigQuery 最多会记住一个插入一分钟,因此如果插入失败,可以通过 API 重试插入,而不必担心可能的(插入的)数据重复。这可能很难做到正确

问题在于,在 Google Cloud 上有大量服务承诺将数据插入 BigQuery。例如,DataFlow / Apache Beam 是推荐堆栈的一部分,用于将来自多个来源的数据导入 BigQuery。还有 Dataprep、Stackdriver Logging 等。

那么,当使用任意 3rd 方 BigQuery 客户端(即不是 BigQuery API)时,是否有一种一致的方法可以在 BigQuery 中恢复失败的插入?

标签: google-bigquery

解决方案


不。

不同的 BigQuery 客户端以不同的方式使用 BigQuery API。这意味着提供将数据导出(或流式传输)到 BigQuery 的各种 Google Cloud 服务(例如 Dataprep、Dataflow)具有不同的策略来处理失败的 BigQuery 插入。

如果您在插入失败的情况下需要一致的 BigQuery 重复数据删除方法,则需要实现自己的 BigQuery API 客户端应用程序。


推荐阅读