Python:如何在 40 秒内更新 Google BigQuery 中的值?

2024-04-06

我有一张桌子在Google BigQuery我使用 Python 访问和修改pandas功能read_gbq and to_gbq。问题是追加 100,000 行大约需要 150 秒,而追加 1 行大约需要 40 秒。我想更新表中的值而不是追加一行,有没有一种方法可以使用非常快或快于 40 秒的 python 更新表中的值?


不确定你是否可以使用pandas但你肯定可以使用google-cloud图书馆。

你可以直接安装它(pip install --upgrade google-cloud)并像这样运行它:

import uuid
import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'path_to_json_credentials.json'
from google.cloud.bigquery.client import Client

bq_client = Client()

job_id = str(uuid.uuid4())
query = """UPDATE `dataset.table` SET field_1 = '3' WHERE field_2 = '1'"""
job = bq_client.run_async_query(query=query, job_name=job_id)
job.use_legacy_sql = False
job.begin()

这里这个操作平均需要 2 秒。

作为旁注,重要的是要记住quotas https://cloud.google.com/bigquery/quota-policy#datasettableupdates与 BQ 中的 DML 操作相关,即知道何时适合使用它们以及它们是否适合您的需求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:如何在 40 秒内更新 Google BigQuery 中的值? 的相关文章

随机推荐