【发布时间】:2013-12-16 15:31:51
【问题描述】:
我正在尝试同时运行多个作业,以便将大约 700K 记录加载到单个 BigQuery 表中。我的代码 (Java) 根据作业记录创建架构,并根据需要更新 BigQuery 架构。
工作流程如下:
- 单个作业创建表并设置(初始)架构。
- 对于每个加载作业,我们都会根据作业记录创建架构。然后我们从 BigQuery 中提取现有的表架构,如果它不是与作业关联的架构的超集,我们将使用新的合并架构更新架构。最后一部分(从提取现有模式开始)被同步(使用锁) - 一次只有一个作业执行它。 schema 的更新是使用 UPDATE 方法,只有在客户端更新方法返回后才会释放锁。
我希望使用此工作流程避免遇到架构更新错误。我假设一旦客户端从更新作业返回,然后表就会更新,并且正在进行的作业不会因架构更新而受到伤害。
尽管如此,我仍然不时收到架构更新错误。更新方法是原子的吗?我如何知道架构何时实际更新?
【问题讨论】:
标签: google-bigquery