使用大查询数据传输作业的最大文件数
Max file count using big query data transfer job
我的 GCP 存储桶中大约有 54 000 个文件。当我尝试安排大查询数据传输作业以将文件从 GCP 存储桶移动到大查询时,出现以下错误:
Error code 9 : Transfer Run limits exceeded. Max size: 15.00 TB. Max file count: 10000. Found: size = 267065994 B (0.00 TB) ; file count = 54824.
我以为最大文件数是 1000 万。
我认为 BigQuery 传输服务会列出所有与通配符匹配的文件,然后使用该列表加载它们。因此,将完整列表提供给 bq load ...
从而达到 10,000 个 URI 限制是一样的。
这可能是必要的,因为 BigQuery 传输服务将跳过已经加载的文件,因此它需要一个一个地查看它们以决定实际加载哪个。
我认为您唯一的选择是自己安排作业并将其直接加载到 BigQuery 中。例如使用 Cloud Composer or writing a little cloud run service that can be invoked by Cloud Scheduler.
前面提到的错误消息 Transfer Run limits exceeded
与 known limit for Load jobs in BigQuery. Unfortunately this is a hard limit and cannot be changed. There is an ongoing Feature Request 相关以增加此限制,但目前尚无实施时间。
针对此问题的主要建议是将单个操作拆分为多个进程,这些进程将在不超过此限制的请求中发送数据。这样我们就可以解决主要问题:“为什么我会看到此错误消息以及如何避免它?”。
现在问 “如何更轻松地自动化或执行这些操作?”是正常的吗? 我能想到涉及更多产品:
Dataflow,这将帮助您处理将添加到 BigQuery 的数据。您可以在此处发送多个请求。
Pub/Sub,将有助于监听事件并自动化处理开始的时间。
请查看 this suggested implementation,其中对上述场景进行了更广泛的描述。
希望对您有所帮助! :)
我的 GCP 存储桶中大约有 54 000 个文件。当我尝试安排大查询数据传输作业以将文件从 GCP 存储桶移动到大查询时,出现以下错误:
Error code 9 : Transfer Run limits exceeded. Max size: 15.00 TB. Max file count: 10000. Found: size = 267065994 B (0.00 TB) ; file count = 54824.
我以为最大文件数是 1000 万。
我认为 BigQuery 传输服务会列出所有与通配符匹配的文件,然后使用该列表加载它们。因此,将完整列表提供给 bq load ...
从而达到 10,000 个 URI 限制是一样的。
这可能是必要的,因为 BigQuery 传输服务将跳过已经加载的文件,因此它需要一个一个地查看它们以决定实际加载哪个。
我认为您唯一的选择是自己安排作业并将其直接加载到 BigQuery 中。例如使用 Cloud Composer or writing a little cloud run service that can be invoked by Cloud Scheduler.
前面提到的错误消息 Transfer Run limits exceeded
与 known limit for Load jobs in BigQuery. Unfortunately this is a hard limit and cannot be changed. There is an ongoing Feature Request 相关以增加此限制,但目前尚无实施时间。
针对此问题的主要建议是将单个操作拆分为多个进程,这些进程将在不超过此限制的请求中发送数据。这样我们就可以解决主要问题:“为什么我会看到此错误消息以及如何避免它?”。
现在问 “如何更轻松地自动化或执行这些操作?”是正常的吗? 我能想到涉及更多产品:
Dataflow,这将帮助您处理将添加到 BigQuery 的数据。您可以在此处发送多个请求。
Pub/Sub,将有助于监听事件并自动化处理开始的时间。
请查看 this suggested implementation,其中对上述场景进行了更广泛的描述。
希望对您有所帮助! :)