尽管我们使用标志“ useLegacySQL:False”发送JSON负载,但BigQuery使用的是Legacy SQL而不是Standard 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的返回消息中被拒绝,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'}