我在使用“ Order Each by ”子句的Google Big Query大表(105M条记录)时遇到严重问题“ Resources Exceeds Query Execution ” 。
这是示例查询(使用公共数据集:Wikipedia):
SELECT Id,Title,Count(*) FROM [publicdata:samples.wikipedia] Group EACH by Id, title Order by Id, Title Desc
Run Code Online (Sandbox Code Playgroud)
如何在不添加Limit关键字的情况下解决此问题。
在大数据数据库上使用按序排序是一项不常见的操作,在某种程度上,它超出了大数据资源的属性。您应该考虑在导出的数据中分片查询或运行订单。
正如我今天在另一个问题中向您解释的那样,添加allowLargeResults将允许您返回较大的响应,但是您无法指定顶级ORDER BY,TOP或LIMIT子句。这样做会抵消使用的好处allowLargeResults,因为查询输出不再可以并行计算。
您可以尝试的一种选择是分片查询。
where ABS(HASH(Id) % 4) = 0
Run Code Online (Sandbox Code Playgroud)
您可以大量使用上述参数来获得较小的结果集,然后进行组合。
另请阅读第9章-了解查询执行,它说明了内部分片的工作方式。
您还应该阅读BigQuery的启动清单
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |