gpt4 book ai didi

sql - 使用 where 子句从大表中筛选数据返回 'response too large ...' 错误

转载 作者:行者123 更新时间:2023-12-02 01:51:21 25 4
gpt4 key购买 nike

我需要使用“where”子句从一个超过 1.2 TB 的大小和大约 28 亿行的表中过滤一些数据。

我通过设置目标表并在作业配置中启用“允许大结果”,开始使用小型数据表(约 2100 万行和 9.6 的表大小)测试数据过滤。

我的查询很简单:

SELECT * FROM [mydataset.mytable] Where DATETIME >= '2014-03-17 00:00:00' and  DATETIME <= '2014-03-17 23:59:59';

我同时使用了 BigQuery 浏览器工具和 bq 命令行工具,但是,每次运行此查询时,我都会收到“响应太大而无法返回”错误。

在此处的文档中 http://goo.gl/b6pNjA ,谷歌说:

  • If you plan to run a query that might return larger results, you can set allowLargeResults to true in your job configuration.
  • You must specify a destination table.
  • You can't specify a top-level ORDER BY clause.
  • Window functions can't return large query results.

我的查询非常简单,不包含任何窗口函数。那么,要绕过这个问题,是否可以使用特定的查询语法来成功运行查询?

请注意这里http://goo.gl/zkSN32 ,指定最大响应大小为 128 MB 压缩且在返回大型查询结果时不受限制,如以上链接 (http://goo.gl/b6pNjA) 中所述。

最佳答案

正如 N.N 所说,为了避免在这种情况下出现“响应太大而无法返回”错误,它应该在 select 子句中声明所有字段,而不是使用 select *。

我尝试通过在 select 语句中声明所有字段、设置目标表并启用“允许大结果”来运行相同的查询,并且它工作正常。

查询完成(经过 115.6 秒,已处理 298 GB)。

目标表的行数:77,796,259。

关于sql - 使用 where 子句从大表中筛选数据返回 'response too large ...' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22506628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com