BigQuery 无法查询滞后的大表

Posted

技术标签:

【中文标题】BigQuery 无法查询滞后的大表【英文标题】:BigQuery can't query large tables with lag 【发布时间】:2015-01-27 16:18:05 【问题描述】:

我在 BigQuery 上有一个包含 3,674,736 行的表,当我使用窗口函数 LAG 和 PARTITION BY 一个具有 370 个不同值的字段运行查询时,BigQuery 返回“错误:查询执行期间超出资源。”。

窗口函数是否有任何限制,但没有记录?

【问题讨论】:

【参考方案1】:

缺乏诊断此问题的信息。但是,根据标题,您可能正在尝试使用窗口函数和 allowLargeResults 来生成输出,which is unsupported。

您可能还想查看troubleshooting document 以了解有关超出资源错误的更多上下文。

【讨论】:

感谢您的回答!我已经成功地使用延迟或其他窗口函数对超过 10 亿行的表进行了数百次查询,提取了大约 5000 万行并在具有大约 15,000 个不同值的字段中进行了分区。但是,50M/15k小于3.7M/370,所以我怀疑这取决于分区的大小,因为计算是平均值,分区不包含相同数量的元素。

以上是关于BigQuery 无法查询滞后的大表的主要内容,如果未能解决你的问题,请参考以下文章

带有“Order Each by”子句的 Google BigQuery 大表(105M 记录)产生“资源超出查询执行”错误

如何优化mysql中的大表?

MySQL 对于千万级的大表要怎么优化

BigQuery 整数分区 - 我可以使用另一个查询的结果来获取要访问的分区列表吗?

如何随机打乱 bigquery 数据集中大表的所有行?

关于列族数量的大表设计和查询