【发布时间】:2016-12-25 03:21:13
【问题描述】:
我在 google 存储中有许多文件,在应用我尝试使用单个管道执行的简单 ParDo 转换后,我必须将它们写入 BigQuery 中的多个表。所以基本上我有许多并行的未连接的源和接收器在一个数据流作业中使用单个管道运行。 在 Pardo 转换中,我有一个条件,如果它的计算结果为真,那么写入特定 BigQuery 表(转换)必须停止,而写入其他 BigQuery 表(其他转换)仍然照常。
在此图像中,有 2 个并行源和 2 个并行接收器,由于源中日期为 2014-08-01 的一些错误数据,第一次转换失败。一旦 2014-08-01 转换失败,2014-08-02 转换就会被取消。 2014-08-02 转换没有不良数据。
有没有办法防止取消其他转换?
【问题讨论】:
-
“停止”是什么意思?什么都不应该写,还是应该写所有已经写好的元素?还有,这是什么条件?是基于时间的吗?元素的属性?如果 ParDo 正在多台机器上进行处理,它们是否都能看到已收到此停止信号?如果一个元素在接收到带有较早时间戳(延迟数据)的停止信号之后到达,是否应该发出它?
-
当特定转换停止时,不应在该转换的接收器中写入任何内容,而其他转换继续执行。条件基于元素的属性。我现在将在问题中进行更多解释。
标签: google-bigquery google-cloud-platform google-cloud-dataflow