Google BiqQuery查询执行在几乎所有表格查询上都失败了。我们最初部署应用程序时,表查询最初正在运行。当数据集开始增长时,我们开始看到下面的错误。我们在每个数据集中都有大量的表。我不确定它是否与此错误相关联。但是,当我们在不同的biqquery帐户中的较小数据集上运行此查询时,它正在成功。
"错误:准备辅助查询时出错:null"
以下是我们尝试从我们的应用程序和Google Biq查询Web控制台执行的一些示例查询,并且我们的所有尝试均未成功导致上述错误。
SELECT * FROM (TABLE_DATE_RANGE([sampledataset.location],
TIMESTAMP('2016-07-10'),
TIMESTAMP('2016-07-11')))
参考Biq查询作业ID:bquijob_286a4921_155dd7d8868
SELECT count(*) FROM (TABLE_QUERY(sampledataset,'table_id CONTAINS "location201606"'))
参考Biq查询作业ID:bquijob_531d0e3_155dda8f7dc
即使我正在执行表摘要查询,我也会收到错误消息。我不确定这个错误是否相关。
SELECT * FROM sampledataset.__TABLES_SUMMARY__
WHERE MSEC_TO_TIMESTAMP(creation_time) <
DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY')
查询执行期间资源超出:数据集metatable中的表太多:sampledataset。 TABLES_SUMMARY ,超出500000限制。
由于这些问题,我们认为Gogole Biq Query非常不稳定,并且没有太多资源可用于解决我们的问题。 在进行较小的表分区之前,我们在stackoverflow中进行了查询
Is there a limit to the number of tables allowed in bigquery?
我们收到了一个肯定的回答,确认@ jordan-tigani没有限制https://stackoverflow.com/users/1366527/jordan-tigani
由于此问题,我们甚至被迫从Google Biq Query迁移到AWS Redshift。
更新1 :根据@Felipe Hoffa的更新,当给定数据集中存在大量表时,似乎Big Query提供的TABLE_DATE_RANGE函数存在问题。目前,Google Big Query Platform和依赖于TABLE_DATE_RANGE的项目无法解决此问题。功能需要迁移到&#34;分区表&#34; (由谷歌推出的新功能)以使应用程序正常运行。我想强调一下,因为它可能会帮助人们设计Biq Query的模式,因为TABLE_DATE_RANGE和类似函数的限制没有在别处记录
答案 0 :(得分:1)
正如Jordan所说,BigQuery中允许的表数没有限制 - 但是在一个查询中可以查询的表数有一个限制。你在这里用一个查询打了多少个表?
为了解决一个查询中允许的表限制,BigQuery推出了新功能“分区表”。在这里,您可以拥有一个唯一的表 - 按日分区 - 这将允许您仅查询所需的天数,从而仅产生比例成本(而不是整个表):
https://cloud.google.com/bigquery/docs/creating-partitioned-tables