【发布时间】:2016-12-23 19:04:48
【问题描述】:
尽管我们使用“useLegacySQL: False”标志发送 JSON 有效负载,但 BigQuery 使用的是旧版 SQL 而不是标准 SQL。标准 SQL 被拒绝 - 但系统将接受带有以下 JSON 的旧版 SQL。
据我们所知,我们正在关注BigQuery's documentation。我们需要什么才能让 BigQuery 通过此 API 调用使用标准 SQL?
这是我们的 BigQuery JSON 负载:
{
'jobReference': {
'jobId': '####',
'projectId': 'healthlabs-4'
},
'configuration': {
'query': {
'destinationTable': {
'tableId': u 'our_table_name',
'datasetId': 'our_dataset_id',
'projectId': 'our_project_id'
},
'useLegacySQL': False,
'priority': 'INTERACTIVE',
'query': u "SELECT ... FROM our_table WHERE ... GROUP BY ... ORDER BY ...",
'allowLargeResults': True
}
}
}
我们可以从 BigQuery 的返回消息中看出该查询被拒绝,该消息接受我们的旧版 SQL 但拒绝我们的标准 SQL 并出现以下错误:
{'create_table_error': [{u'location': u'query', u'message': u'Encountered " "FROM" "FROM "" at line 1, column 333.\nWas expecting:\n ")" ...\n ', u'reason': u'invalidQuery'}], 'bq_table_exists': 'no'}
【问题讨论】:
标签: python sql google-bigquery