python - Google Bigquery 某些内容返回空/无行

标签 python google-app-engine google-api google-bigquery

使用 python api 查询大查询有时会返回“无响应”或“无行”。尽管再次重试相同的查询效果很好。这是什么原因呢?

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。默认情况下,查询方法的运行时间为 timeout 10s 。当指定非零超时值时,作业将等待结果,并在超时时抛出异常。

了解更多信息

  • 同步查询
  • 异步查询

https://cloud.google.com/bigquery/querying-data

还有 Python 代码,如何轮询直到作业完成。

关于python - Google Bigquery 某些内容返回空/无行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28938830/

相关文章:

python - 无法为 "high"x 计算 e^(-x)

python - 在discord.py中是否有类似于discord.js中的streamTime的东西?

python - AppEngine - AppEngine HR 数据存储中奇怪的 ID 分配

google-app-engine - gcloud 应用程序部署失败 : permission denied for [ID] from request [URL]

android - 来自 Android 手机的适用于 Google API 的有效 OAuth

python - 有人可以帮我在 pygame 中为扑克游戏创建一副纸牌吗

java - 来自 servlet java.lang.RuntimeException : Driver org. hsqldb.jdbc.JDBCDriver 的未捕获异常声称不接受 jdbcUrl、jdbc:mysql:///iworks_db

javascript - Google Places API 请求出错

google-api - 在谷歌云库中查找 script.container.ui API

python - 从 Django 查询集中获取 Django 值,其中列名是一个变量