我正在尝试运行多个并发作业,以便将大约700K记录加载到单个BigQuery表中。我的代码(Java)根据作业的记录创建模式,并在需要时更新BigQuery模式。
工作流程如下:
我希望避免使用此工作流程遇到架构更新错误。我假设一旦客户端从更新作业返回,那么表就会更新,并且正在进行的作业不会受到架构更新的影响。
尽管如此,我仍然会不时收到架构更新错误。更新方法是原子的吗?我如何知道架构何时实际更新?
答案 0 :(得分:0)
BigQuery中的更新是原子的,但它们会在作业结束时应用。作业完成后,它确保模式是等效的。如果在作业运行时存在架构更新,则此检查将失败。
我们应该确保模式是兼容的而不是等效的。如果你使用兼容模式进行附加(即你有一个表模式的子集)应该成功,但是目前BigQuery不允许这样做。我会提交一个错误。