【发布时间】:2021-02-27 19:02:44
【问题描述】:
我正在尝试通过 Python 客户端将不同计算机 (n=20) 上的超过 2 亿条记录导入我的 BigQuery 表。每台计算机每 10. 秒运行一次作业(多行)
from google.cloud import bigquery
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = os.getcwd() + '/api.json'
print('Import job started, total rows:' + str(len(queries)))
client = bigquery.Client()
for q in queries:
results = client.query(q)
for err in results:
print(err)
但我收到以下错误:
google.api_core.exceptions.Forbidden: 403 Exceeded rate limits: too 此表的许多表 dml 插入操作。了解更多信息, 见https://cloud.google.com/bigquery/troubleshooting-errors
数据是在运行时生成的。所以我必须在运行时导入数据。我也不确定 BigQuery 是否适用于此。 Spanner 似乎更好,但它太贵了。
如何避免此错误? 非常感谢。
【问题讨论】:
-
不要对这项工作使用 DML,而是使用支持每秒 1M 行的流式插入。