我已经使用 Big query 通过 Web 服务生成报告已有一年了,但是在过去一个月左右的时间里,我注意到 HTTP 500 错误以响应我的大多数查询请求,即使没有对 Web 服务进行任何更改. 在我当前的设置中,我同时进行了 5 个查询,通常 5 个查询中有 4 个因 500 错误而失败。有时会返回所有 5 个查询,但最近很少发生这种情况,导致我的应用程序几乎无法使用。
我使用我的服务帐户令牌使用服务器到服务器身份验证,并且我的大查询客户端应用程序非常模仿此处给出的示例 -
https://developers.google.com/bigquery/articles/dashboard#class
这是完整的错误消息 -
HttpError:https://www.googleapis.com/bigquery/v2/projects/1021946877460/queries?alt=json 返回“意外。请重试。”>
我的 bigquery 客户端的片段 -
def generateToken():
"""
generates OAuth2.0 token/credentials for login to google big query
"""
credentials = SignedJwtAssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
KEY,
"https://www.googleapis.com/auth/bigquery")
return credentials
class BigQueryClient(object):
def authenticate(self, credentials):
http = httplib2.Http(proxy_info = httplib2.ProxyInfo(
socks.PROXY_TYPE_HTTP,
PROXY_IP,
PROXY_PORT))
http = credentials.authorize(http)
return http
def __init__(self, credentials, project):
http = self.authenticate(credentials)
self.service = build('bigquery', 'v2', http=http)
如果我在这里做错了什么,或者 bigquery 后端是否发生了任何变化,例如在特定时间段内允许的查询请求数量的限制,请告诉我。
谢谢。