将数据流式传输到 BigQuery 新表中?

kor*_*tit 5 java google-bigquery

我正在使用 Google BigQuery 的 Java API 将实时事件日志流式传输到数据库中。

由于事先不知道事件的结构,因此当事件开始到来时,我需要在 java 中实时创建表。

这是通过调用 来实现的bigQuery.create( tableInfo )。根据 BigQuery Web 控制台,此调用是同步的,并且在此调用之后立即创建具有预期结构的表。

但是,当我尝试通过以下方式将数据流式传输到这个新创建的表中时

bigQuery.insertAll(request);
Run Code Online (Sandbox Code Playgroud)

a在表实际存在时BigQueryException引发消息Not found: Table myProject.myDataset.myNewTableName!等待几秒钟(大约 30 秒)后,流媒体开始正常工作。
此外,即使bigQuery.listtables(dataset, tableListOptions)从服务器调用确认该表存在,也会出现问题!

查看谷歌文档后,

更改模板表架构后,请等待更改传播,然后再尝试插入新数据或查询生成的表。插入新字段的请求应该会在几分钟内成功。尝试查询新字段可能需要长达 90 分钟的更长等待时间。

这就是原因吗?流式插入无法在新表上工作是正常行为吗?有解决方法吗?

任何关于这种情况的想法都将受到欢迎。

谢谢 ;)