数据流错误 - "Sources are too large. Limit is 5.00Ti"

Dataflow error - "Sources are too large. Limit is 5.00Ti"

我们的管道如下所示:

BigQuery -> ParDo -> BigQuery

table 有 ~2B 行,刚好不到 1TB。

在 运行 仅 8 个多小时后,作业失败并出现以下错误:

May 19, 2015, 10:09:15 PM
S09: (f5a951d84007ef89): Workflow failed. Causes: (f5a951d84007e064): BigQuery job "dataflow_job_17701769799585490748" in project "gdfp-xxxx" finished with error(s): job error: Sources are too large. Limit is 5.00Ti., error: Sources are too large. Limit is 5.00Ti.

职位编号是:2015-05-18_21_04_28-9907828662358367047

它很大 table,但不是那么大,Dataflow 应该可以轻松处理它。为什么它不能处理这个用例?

此外,即使作业失败,它仍然在图表上显示为成功。为什么?

我认为该错误意味着您尝试写入 BigQuery 的数据超过了单个导入作业的 5TB limit set by BigQuery

解决此限制的一种方法可能是通过多个写入转换将您的 BigQuery 写入拆分为多个作业,这样写入转换接收的数据不会超过 5TB。

在写入转换之前,您可能有一个带有 N 个输出的 DoFn。对于每条记录,将其随机分配给其中一个输出。 N 个输出中的每一个都可以有自己的 BigQuery.Write 转换。写入转换可以将所有数据附加到相同的 table,以便所有数据都将在相同的 table.

中结束