我有一个表GoogleBigQuery,我访问和使用Python中的修改pandas功能read_gbq和to_gbq。问题在于,添加100,000行需要大约150秒,而添加1行需要大约40秒。我想更新表中的值而不是添加一行,有没有一种方法可以使用python快速或快于40秒来更新表中的值?
GoogleBigQuery
pandas
read_gbq
to_gbq
不确定是否可以使用pandas但可以使用google-cloud库。
google-cloud
您可以只安装(pip install --upgrade 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()
在这里,此操作平均需要2s。
附带说明一下,牢记与BQ中DML操作相关的配额很重要,也就是说,知道何时使用它们以及它们是否完全适合您的需求。