如何在 Python 中运行 BigQuery 查询

新手上路,请多包涵

这是我一直在 BigQuery 中运行的查询,我想在我的 python 脚本中运行。我将如何更改它/我必须添加什么才能在 Python 中运行。

 #standardSQL
SELECT
  Serial,
  MAX(createdAt) AS Latest_Use,
  SUM(ConnectionTime/3600) as Total_Hours,
  COUNT(DISTINCT DeviceID) AS Devices_Connected
FROM `dataworks-356fa.FirebaseArchive.testf`
WHERE Model = "BlueBox-pH"
GROUP BY Serial
ORDER BY Serial
LIMIT 1000;

从我一直在研究的内容来看,我无法使用 Python 将此查询保存为永久表。真的吗?如果是真的,是否仍然可以导出临时表?

原文由 W. Stephens 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 846
2 个回答

您需要使用 BigQuery Python 客户端库,然后像这样的东西应该可以让您启动并运行:

 from google.cloud import bigquery
client = bigquery.Client(project='PROJECT_ID')
query = "SELECT...."
dataset = client.dataset('dataset')
table = dataset.table(name='table')
job = client.run_async_query('my-job', query)
job.destination = table
job.write_disposition= 'WRITE_TRUNCATE'
job.begin()

https://googlecloudplatform.github.io/google-cloud-python/stable/bigquery-usage.html

请参阅当前的 BigQuery Python 客户端教程

原文由 Graham Polley 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是为服务帐户使用 JSON 文件的另一种方法:

 >>> from google.cloud import bigquery
>>>
>>> CREDS = 'test_service_account.json'
>>> client = bigquery.Client.from_service_account_json(json_credentials_path=CREDS)
>>> job = client.query('select * from dataset1.mytable')
>>> for row in job.result():
...     print(row)

原文由 Aziz Alto 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏