我使用GoogleApp引擎,偶尔当我通过JSON API向BigQuery发送查询时,我将得到不正确的结果。它通常仅限于BigQuery中的单个表(我为每个创建的批处理作业创建一个新表)。当我在生产中遇到此问题时,我记录了我提交的查询,并尝试通过运行时间超出预期的BigQuery仪表板运行它,但返回预期结果。BigQuery不准确返回结果
响应中没有任何内容表示问题。 jobComplete
返回为True
,但我看不到rows
,只有jobReference
,schema
和totalRows = 0
。
在这种情况下,即使我期望当前的调用返回结果,也可以进行调用以获得工作结果吗?
相关代码:
http = httplib2.Http(memcache)
self.credentials = AppAssertionCredentials(scope='https://www.googleapis.com/auth/bigquery')
self.http = self.credentials.authorize(http=http)
self.service = build('bigquery','v2',http=self.http)
jobs = self.service.jobs()
result = jobs.query(projectId=settings.GOOGLE_APIS_PROJECT_ID,
body={'query': query}).execute()
响应:
{u'totalRows': u'0', u'kind': u'bigquery#queryResponse', u'jobComplete': True, u'jobReference': {u'projectId': u'<REMOVED>', u'jobId': u'<REMOVED>'}, u'schema': {u'fields': [<REMOVED>]}}
不管我尝试多少次重新运行在生产中,同样的结果返回的查询(难道这是由于通过memcache完成缓存并将不正确的结果缓存为响应?)
您能否发送您认为回复不正确的工作的jobid? –
job_3729b36aa04148bbbb9625a1b4ce6190 – someone1
如果您不想在公开论坛上讨论查询详情,您可以通过我的姓氏在google.com上发电子邮件给我吗? (我最初的调查使它看起来像查询返回正确的数据,但我想更好地理解你认为正确的结果将是什么,以及针对此表的其他查询是否按预期工作) –