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_rowsinsert_rows_json 之类的 Client 方法在下面使用 insertAll 方法 - 它使用流式机制。 有没有办法从 python 代码调用“标准”BigQuery 插入以插入大于 1MB 的行?这将是相当罕见的情况,所以我不关心有关每日表插入计数限制的配额。

【问题讨论】:

【参考方案1】:

客户端库不能绕过 API 限制。 请参阅current quotas,截至本文撰写时的一行不能大于 1MB。

我们使用的解决方法是将 NJSON 中的记录以 100MB 批量保存到 GCS - 我们使用 gcsfs 库 - 然后执行 bq.load() 作业。

我实际上刚刚记录了一个功能请求here 以增加限制,因为这是非常有限的。如果有兴趣,请务必给它“加注星标”以获得吸引力。

【讨论】:

以上是关于BigQuery - 插入大于 1MB 的行的主要内容,如果未能解决你的问题,请参考以下文章

如何恢复 Big Query 中已删除的行?

如何在 Big Query 中安排每日插入作业 [重复]

如何使用 BigQuery Streaming 获取插入的行数

Google Bigquery 插入流式传输

除了覆盖表之外,还有其他方法可以更新 Big Query 中的行吗?

是否可以在 bigQuery 表中插入具有不同字段的行?