我遇到严重问题" 资源超出查询执行"当谷歌大查询大表(105M记录)与' 按订单分别'子句。
以下是示例查询(使用公共数据集:Wikipedia):
SELECT Id,Title,Count(*) FROM [publicdata:samples.wikipedia] Group EACH by Id, title Order by Id, Title Desc
如何在不添加Limit关键字的情况下解决此问题。
答案 0 :(得分:4)
在大数据数据库上使用order by不是一项普通的操作,并且在某些时候它超出了大数据资源的属性。您应该考虑在导出的数据中分片查询或运行订单。
正如我今天在your other question向您解释的那样,添加allowLargeResults
将允许您返回大回复,但您无法指定顶级ORDER BY,TOP或LIMIT子句。这样做会否定使用allowLargeResults
的好处,因为无法再并行计算查询输出。
您可以尝试的一个选项是分片查询。
where ABS(HASH(Id) % 4) = 0
您可以大量使用上述参数来实现更小的结果集,然后进行组合。
同时阅读Chapter 9 - Understanding Query Execution,它解释了内部分片的工作原理。
答案 1 :(得分:1)
我遇到了相同的问题,并按照以下步骤进行了修复
不使用tornado.general:Write error on <ssl.SSLSocket fd=9, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('10.0.0.14', 443), raddr=('106.51.29.177', 9193)>: The operation did not complete (write) (_ssl.c:2361)
运行查询并将其保存在数据集表中。
使用通配符(BUCKETNAME / FILENAME * .csv)将该表中的内容导出到GCS中的存储桶中
将文件下载到计算机中的文件夹中。
在XAMPP控制面板中启动Apache和MySQL。
安装HeidiSQL并稳定与MySQL服务器(与XAMPP一起安装)的连接
创建数据库和带有其字段的表。
一旦导入了所有数据,请执行ORDER BY
并导出表。