BigQuery提供了insertIds并进行了一些重复数据删除,以帮助在通过API插入数据时出现故障情况。根据文档BigQuery will remember an insert for up to a minute,如果插入失败,则可以通过API重试插入,而不必担心可能的(插入的)数据重复。这可以是tricky to get right。
问题在于,Google Cloud上有大量服务可以将数据插入BigQuery。例如,DataFlow / Apache Beam是推荐堆栈的一部分,用于将来自多个源的数据导入BigQuery。还有Dataprep,Stackdriver Logging等。
在使用任意第三方BigQuery客户端(即不是BigQuery API)时,有没有一种一致的方法来恢复BigQuery中的失败插入?
答案 0 :(得分:1)
没有。
不同的BigQuery客户端以不同的方式使用BigQuery API。这意味着向BigQuery提供数据导出(或流式传输)的各种Google云服务(例如Dataprep,Dataflow)具有处理失败的BigQuery插入的不同策略。
如果在插入失败的情况下需要一致的BigQuery重复数据删除方法,则需要实现自己的BigQuery API客户端应用程序。