google-bigquery - 从其他 Google Cloud 服务流式传输数据时,是否可以修复失败的 BigQuery 插入?
问题描述
BigQuery 提供 insertIds 并执行一些重复数据删除,以帮助解决通过 API 插入数据时的故障情况。根据文档,BigQuery 最多会记住一个插入一分钟,因此如果插入失败,可以通过 API 重试插入,而不必担心可能的(插入的)数据重复。这可能很难做到正确。
问题在于,在 Google Cloud 上有大量服务承诺将数据插入 BigQuery。例如,DataFlow / Apache Beam 是推荐堆栈的一部分,用于将来自多个来源的数据导入 BigQuery。还有 Dataprep、Stackdriver Logging 等。
那么,当使用任意 3rd 方 BigQuery 客户端(即不是 BigQuery API)时,是否有一种一致的方法可以在 BigQuery 中恢复失败的插入?
解决方案
不。
不同的 BigQuery 客户端以不同的方式使用 BigQuery API。这意味着提供将数据导出(或流式传输)到 BigQuery 的各种 Google Cloud 服务(例如 Dataprep、Dataflow)具有不同的策略来处理失败的 BigQuery 插入。
如果您在插入失败的情况下需要一致的 BigQuery 重复数据删除方法,则需要实现自己的 BigQuery API 客户端应用程序。
推荐阅读
- docker - 使用 docker 文件安装 Apache Web 服务器
- php - 带有2个数据库表的Datatable Json?
- react-native - 使用密钥提取器时仍然收到唯一密钥错误
- javascript - FCM 通知 - 如何更改图标?
- flutter - 扑动 StaggerGridView 与 ListView 的孩子完全显示
- javascript - 不断收到“文本字符串必须在
使用 TimeAgo 库时的组件” - php - 连接到 samsung.com 以检查 imei/sn
- html - Django覆盖默认的ModelForm错误消息不起作用
- laravel - 使用 vuejs 和 laravel 惯性导入包时找不到导出“默认”
- javascript - Chrome Mobile 屏幕呈现高度错误,导致内容无法显示