0

我的 GCP 存储桶中有大约 54 000 个文件。当我尝试安排大查询数据传输作业以将文件从 GCP 存储桶移动到大查询时,我收到以下错误:

错误代码 9:超出传输运行限制。最大大小:15.00 TB。最大文件数:10000。找到:大小 = 267065994 B (0.00 TB);文件数 = 54824。

我认为最大文件数是 1000 万。

4

2 回答 2

1

我认为 BigQuery 传输服务列出了与通配符匹配的所有文件,然后使用该列表加载它们。因此,提供完整列表以bq load ...达到 10,000 个 URI 限制是相同的。这可能是必要的,因为 BigQuery 传输服务会跳过已加载的文件,因此需要逐个查看它们以决定实际加载哪些文件。

我认为您唯一的选择是自己安排作业并将它们直接加载到 BigQuery 中。例如使用Cloud Composer或编写一个可由Cloud Scheduler调用的小型云运行服务。

于 2020-06-22T06:57:57.197 回答
0

Transfer Run limits exceeded前面提到的错误消息与BigQuery 中加载作业的已知限制有关。不幸的是,这是一个硬限制,无法更改。有一个正在进行的功能请求来增加此限制,但目前还没有 ETA 可以实施。

此问题的主要建议是将单个操作拆分为多个进程,这些进程将在不超过此限制的请求中发送数据。有了这个,我们可以解决主要问题:“为什么我会看到此错误消息以及如何避免它?”。

现在问“如何更容易地自动化或执行这些操作”是正常的吗?我能想到的涉及更多产品:

  • Dataflow,它将帮助您处理将添加到 BigQuery 的数据。您可以在此处发送多个请求。

  • Pub/Sub 将有助于监听事件并自动化处理开始的时间。

请看一下这个建议的实现,其中对上述场景进行了更广泛的描述。

希望这有帮助!:)

于 2020-06-26T00:14:30.860 回答