Programming/Python

구글 빅쿼리(BigQuery) Python으로 테이블 읽기

빠릿베짱이 2017. 4. 11. 09:44
반응형
def sync_query(query):
client = bigquery.Client()
query_results = client.run_sync_query(query)
query_results.use_legacy_sql = False
query_results.timeout_ms = 3600000
query_results.run()
print "query.complate: ",query_results.complete

job = query_results.job

retry_count = 600
while retry_count > 0 and job.state != 'DONE':
print "retry_count:", retry_count
print "job.state:",job.state
retry_count -= 1
time.sleep(1)
job.reload() # API request

page_token = None
result_list = []
while True:
rows, total_rows, page_token = query_results.fetch_data(
max_results=10,
page_token=page_token)
for row in rows:
result_list.append(list(row))

if not page_token:
break

print result_list
return result_list


외부에서 Python으로 구글 빅쿼리 접속하여 쿼리 결과를 받는 경우, 

이상하게도 리턴은 하는데, 결과 데이터를 받지 못하는 경우가 있었음


위와 같이, Job.state를 보고 완료될때까지 기다리는 코드 추가 후 테스트한 결과,

그런 문제는 발생하지 않았음.




반응형

'Programming > Python' 카테고리의 다른 글

python string to function call  (0) 2017.04.26
flask log disable  (0) 2017.04.19
Tensorflow 설치  (0) 2017.04.04
Python Unit Test  (0) 2016.12.14
plotly offline  (0) 2016.11.25