Google Biq 查询某事 returns 空/无行
Google Biq query something returns a null / no rows
有时使用 python api 查询大查询 returns 无响应或无行。虽然再次重试相同的查询工作正常。这是什么原因?
def execute(self,bq_query,query_type,uid):
self.cache = cache.Cache()
cached_response = self.cache.get(bq_query)
if(cached_response is not None):
query_response = json.loads(zlib.decompress(cached_response))
app.logger.info("cached")
else:
big_query=_BigQuery(uid)
query_response = big_query.run_in_big_query(bq_query)
if not query_response:
logging.warning('**************************1.No reponse')
abort(404)
elif 'rows' not in query_response.keys():
logging.warning('**************************2.No rows')
abort(404)
def run_in_big_query(self, sql):
start = time.time()
queryData = {'query': sql}
queryRequest = self.service.jobs()
queryResponse = queryRequest.query(projectId=project_id,
body=queryData).execute()
app.logger.info('Query Time %f' % (time.time() - start))
return queryResponse
查询方法将查询作业插入到 BigQuery 中。默认情况下,查询方法使用 10s
for timeout 运行。当指定非零超时值时,作业将等待结果,并在超时时抛出异常。
阅读更多关于
- 同步查询
- 异步查询
https://cloud.google.com/bigquery/querying-data
还有 Python 代码,如何轮询直到作业完成。
有时使用 python api 查询大查询 returns 无响应或无行。虽然再次重试相同的查询工作正常。这是什么原因?
def execute(self,bq_query,query_type,uid):
self.cache = cache.Cache()
cached_response = self.cache.get(bq_query)
if(cached_response is not None):
query_response = json.loads(zlib.decompress(cached_response))
app.logger.info("cached")
else:
big_query=_BigQuery(uid)
query_response = big_query.run_in_big_query(bq_query)
if not query_response:
logging.warning('**************************1.No reponse')
abort(404)
elif 'rows' not in query_response.keys():
logging.warning('**************************2.No rows')
abort(404)
def run_in_big_query(self, sql):
start = time.time()
queryData = {'query': sql}
queryRequest = self.service.jobs()
queryResponse = queryRequest.query(projectId=project_id,
body=queryData).execute()
app.logger.info('Query Time %f' % (time.time() - start))
return queryResponse
查询方法将查询作业插入到 BigQuery 中。默认情况下,查询方法使用 10s
for timeout 运行。当指定非零超时值时,作业将等待结果,并在超时时抛出异常。
阅读更多关于
- 同步查询
- 异步查询
https://cloud.google.com/bigquery/querying-data
还有 Python 代码,如何轮询直到作业完成。