错误:响应太大而无法在大查询中返回

时间:2013-11-29 14:26:26

标签: google-bigquery

我正在尝试运行查询“ select * from tablename ”。 但它会引发错误,例如“错误:响应太大而无法返回”。

我能够处理包含TB数据的其他表。但是我收到包含294 MB的表的错误。

我能够通过选择列名来选择表,但有一些限制无法处理select查询中的所有列。 在我的选择查询中,我有26列,但我能够选择16列而不会出错。 “从tablename 中选择column1,column2,column3,.... column16”。

表的列和大小是否有任何关系。

请帮我解决这个问题。

大查询表详细信息:

总记录:683,038

表格大小:294 MB

No of Column:26

4 个答案:

答案 0 :(得分:14)

在作业配置中将allowLargeResults设置为true。您还必须使用allowLargeResults标志指定目标表。

如果通过API查询,

"configuration": 
  {
    "query": 
    {
      "allowLargeResults": true,
      "query": "select uid from [project:dataset.table]"
      "destinationTable": [project:dataset.table]

    }
  }

如果使用bq命令行工具,

  

$ bq query --allow_large_results --destination_table“dataset.table”“从[project:dataset.table]中选择uid”

如果使用浏览器工具,

  
      
  • 点击“启用选项”
  •   
  • 选择“允许大结果”
  •   

答案 1 :(得分:2)

jobData = {'configuration': {'query': {'query': sql, 
            'allowLargeResults': 'true',
            'destinationTable':{ 
                        "projectId": "projectXYZ",
                        "tableId": "tableXYZ", 
                        "datasetId": "datasetXYZ", 
                                }
                        }}}  

您可以使用'writeDisposition'指定是否覆盖目标表。

'writeDisposition':'WRITE_TRUNCATE' # If the table already exists, 
                                    # BigQuery overwrites the table data.
'writeDisposition':'WRITE_APPEND'   # If the table already exists, 
                                    # BigQuery appends the data to the table

答案 2 :(得分:0)

如果您尝试在查询中添加 LIMIT 子句怎么办?

答案 3 :(得分:-1)

如果您尚未在作业配置中尝试将allowLargeResults设置为true。

我是Big Query的新手。请您更新我在哪里可以更改这些作业配置。