在发布之前,我已经在互联网上发过类似的帖子,但我找不到匹配。抱歉,如果它已经回答,我错过了帖子。
我创建了一个python脚本,通过app引擎将数据从Google云存储加载到BigQuery。由于app引擎具有60秒超时窗口,因此希望以异步模式提交这些作业,并希望将JOB ID存储在其中一个bigquery表中。另一个脚本将保留作业的状态,如果作业是“完成”,则拉出结果并更新该表中已完成的作业状态。这样下次我就不会检查同一工作的工作状态了。
如果我取消选择“使用旧版SQL”但不使用API,则更新语句在Web控制台中正常工作。我尝试了不同的方法,比如在查询前使用#standardSQL,但没有运气。
_qry = "update temp.temp set name1='xyz1' where name1='hjk'"
job_data = {
'jobReference': {
'projectId': cfg._projectid,
'job_id': str(uuid.uuid4())
},
'configuration': {
'query': {
'query': _qry,
'timeoutMs': 60000,
'useLegacySql': false
},
'allowLargeResults': True,
'priority': 'BATCH'
}
}
_jbslist = _bq.jobs()
_jbq_response = _jbslist.insert(projectId=_projectid,body=job_data).execute()
_jbslist = _bq.jobs()
_job = None
_job =
_jbslist.get(projectId=_projectid,jobId=_jbq_response['jobReference']['jobId']).execute()
答案 0 :(得分:0)
现在Update语句正在运行。需要在SQL之前添加standardSQL。
_qry1 = "#standardSQL"
_qry = _qry1 + "\n" + "UPDATE `tensile-site-168620.temp.temp` SET name1='chaitu1331' WHERE name1='chaitu11'"
表名应该在``这些引号tensile-site-168620.temp.temp
中,然后更新语句正在工作。谢谢你的帮助。