我正在尝试运行查询“ select * from tablename ”。 但它会引发错误,例如“错误:响应太大而无法返回”。
我能够处理包含TB数据的其他表。但是我收到包含294 MB的表的错误。
我能够通过选择列名来选择表,但有一些限制无法处理select查询中的所有列。 在我的选择查询中,我有26列,但我能够选择16列而不会出错。 “从tablename 中选择column1,column2,column3,.... column16”。
表的列和大小是否有任何关系。
请帮我解决这个问题。
大查询表详细信息:
总记录:683,038
表格大小:294 MB
No of Column:26
答案 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的新手。请您更新我在哪里可以更改这些作业配置。