谷歌BigQuery大表(105M记录)'订单每个由'子句生成"资源超过查询执行"错误

时间:2015-07-08 10:08:40

标签: google-bigquery

我遇到严重问题" 资源超出查询执行"当谷歌大查询大表(105M记录)与' 按订单分别'子句。

以下是示例查询(使用公共数据集:Wikipedia):

SELECT Id,Title,Count(*) FROM [publicdata:samples.wikipedia] Group EACH by Id, title Order by Id, Title Desc

如何在不添加Limit关键字的情况下解决此问题。

2 个答案:

答案 0 :(得分:4)

在大数据数据库上使用order by不是一项普通的操作,并且在某些时候它超出了大数据资源的属性。您应该考虑在导出的数据中分片查询或运行订单。

正如我今天在your other question向您解释的那样,添加allowLargeResults将允许您返回大回复,但您无法指定顶级ORDER BY,TOP或LIMIT子句。这样做会否定使用allowLargeResults的好处,因为无法再并行计算查询输出。

您可以尝试的一个选项是分片查询。

where ABS(HASH(Id) % 4) = 0

您可以大量使用上述参数来实现更小的结果集,然后进行组合。

同时阅读Chapter 9 - Understanding Query Execution,它解释了内部分片的工作原理。

您还应该阅读Launch Checklist for BigQuery

答案 1 :(得分: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)运行查询并将其保存在数据集表中。

  2. 使用通配符(BUCKETNAME / FILENAME * .csv)将该表中的内容导出到GCS中的存储桶中

  3. 将文件下载到计算机中的文件夹中。

  4. 在之后安装XAMPPif you get a UAC warning)和change some settings

  5. 在XAMPP控制面板中启动Apache和MySQL。

  6. 安装HeidiSQL并稳定与MySQL服务器(与XAMPP一起安装)的连接

  7. 创建数据库和带有其字段的表。

  8. Go to Tools > Import CSV file, configure accordingly并导入。

  9. 一旦导入了所有数据,请执行ORDER BY并导出表。