BigQuery - 插入大于 1MB 的行
Posted
技术标签:
【中文标题】BigQuery - 插入大于 1MB 的行【英文标题】:BigQuery - insert row larger than 1MB 【发布时间】:2020-03-09 13:26:28 【问题描述】:我的 Python 应用正在 BigQuery 中存储结果数据。在代码中,我正在生成反映目标 BQ 表结构的 JSON,然后将其插入。
通常它工作正常,但无法保存大小超过 1 MB 的行。这是使用流式插入的限制。
我查看了 Google API 文档:https://googleapis.dev/python/bigquery/latest/index.html
看来,insert_rows
或 insert_rows_json
之类的 Client
方法在下面使用 insertAll
方法 - 它使用流式机制。
有没有办法从 python 代码调用“标准”BigQuery 插入以插入大于 1MB 的行?这将是相当罕见的情况,所以我不关心有关每日表插入计数限制的配额。
【问题讨论】:
【参考方案1】:客户端库不能绕过 API 限制。 请参阅current quotas,截至本文撰写时的一行不能大于 1MB。
我们使用的解决方法是将 NJSON 中的记录以 100MB 批量保存到 GCS - 我们使用 gcsfs
库 - 然后执行 bq.load()
作业。
我实际上刚刚记录了一个功能请求here 以增加限制,因为这是非常有限的。如果有兴趣,请务必给它“加注星标”以获得吸引力。
【讨论】:
以上是关于BigQuery - 插入大于 1MB 的行的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 BigQuery Streaming 获取插入的行数