Python BigQuery API:如何异步获取数据?
Python BigQuery API: how to get data asynchronously?
我正在 Python、following the documentation 中开始使用 BigQuery API。
这是我的代码,改编自an example:
credentials = GoogleCredentials.get_application_default()
bigquery_service = build('bigquery', 'v2', credentials=credentials)
try:
query_request = bigquery_service.jobs()
query_data = {
'query': (
'SELECT * FROM [mytable] LIMIT 10;"
)
}
query_response = query_request.query(
projectId=project_id,
body=query_data).execute()
for row in query_response['rows']:
print('\t'.join(field['v'] for field in row['f']))
我遇到的问题是我一直收到回复:
{u'kind': u'bigquery#queryResponse',
u'jobComplete': False,
u'jobReference': {u'projectId': 'myproject', u'jobId': u'xxxx'}}
所以它没有 rows
字段。查看文档,我想我需要获取 jobId
字段并使用它来检查作业何时完成,然后获取数据。
我遇到的问题是文档有点零散和混乱,我不知道该怎么做。
我想我需要 use this method 来检查作业的状态,但我该如何适应 Python?我应该多久检查一次/我应该等多久?
谁能举个例子吗?
我正在 Python、following the documentation 中开始使用 BigQuery API。
这是我的代码,改编自an example:
credentials = GoogleCredentials.get_application_default()
bigquery_service = build('bigquery', 'v2', credentials=credentials)
try:
query_request = bigquery_service.jobs()
query_data = {
'query': (
'SELECT * FROM [mytable] LIMIT 10;"
)
}
query_response = query_request.query(
projectId=project_id,
body=query_data).execute()
for row in query_response['rows']:
print('\t'.join(field['v'] for field in row['f']))
我遇到的问题是我一直收到回复:
{u'kind': u'bigquery#queryResponse',
u'jobComplete': False,
u'jobReference': {u'projectId': 'myproject', u'jobId': u'xxxx'}}
所以它没有 rows
字段。查看文档,我想我需要获取 jobId
字段并使用它来检查作业何时完成,然后获取数据。
我遇到的问题是文档有点零散和混乱,我不知道该怎么做。
我想我需要 use this method 来检查作业的状态,但我该如何适应 Python?我应该多久检查一次/我应该等多久?
谁能举个例子吗?