我正在使用Java API for google BigQuery将实时事件日志流式传输到数据库中。
由于事件的结构事先未知,我需要在事件开始时在java中执行表的实时创建。
这是通过致电bigQuery.create( tableInfo )
来完成的。此调用是同步的,在此调用之后,根据BigQuery Web控制台创建具有预期结构的表。
但是,当我尝试通过
将数据流式传输到这个新创建的表中时bigQuery.insertAll(request);
当表格实际存在时,BigQueryException
会显示消息Not found: Table myProject.myDataset.myNewTableName
!
等待几秒钟(大约30秒)后,流媒体开始正常工作
此外,即使调用bigQuery.listtables(dataset, tableListOptions)
从服务器确认该表存在,也会出现问题!
查看谷歌文档后,
这是什么原因?流插入不能在新表上工作是正常行为吗?有解决方法吗?更改模板表架构后,请等到更改已传播,然后再尝试插入新数据或查询生成的表。插入新字段的请求应在几分钟内成功。尝试查询新字段可能需要更长的等待时间长达90分钟。
欢迎任何关于这种情况的想法。
谢谢;)