0

在我的 Flink 批处理程序(DataSet / Table )中,我正在读取多个文件,这正在产生不同的流,进行一些处理,并以输出格式保存它
由于 flink 使用数据流模型,而我的流并不真正相关,它是并行处理

但是我希望 Flink 至少尊重我的输出操作的顺序,因为我希望 flow1 在 flow2 之前保存

例如我有类似的东西:

Table table1 = tableEnv.fromTableSource(new MyTableSource1());
DataSet<Obj1> dataSet1 = talbeEnv.toDataSet(table1.select("toto",..),Obj1.class)
dataSet1.output(new WateverdatasinkSQL())

Table table2 = tableEnv.fromTableSource(new MyTableSource2());
DataSet<Obj2 dataSet2 = tableEnv.toDataSet(table2.select("foo","bar",..),Obj2.class)
dataSet2.output(new WateverdatasinkSQL())

我希望 flink 等待 dataSet1 被保存以继续......
我怎样才能将它作为连续操作?
我已经看过执行模式,但这不是这样做的

问候, 巴斯蒂安

4

1 回答 1

2

最简单的解决方案是将两个流程分成单独的作业并一个接一个地执行它们。

Table table1 = tableEnv.fromTableSource(new MyTableSource1());
DataSet<Obj1> dataSet1 = talbeEnv.toDataSet(table1.select("toto",..), Obj1.class);
dataSet1.output(new WateverdatasinkSQL());
env.execute();

Table table2 = tableEnv.fromTableSource(new MyTableSource2());
DataSet<Obj2> dataSet2 = tableEnv.toDataSet(table2.select("foo","bar",..), Obj2.class);
dataSet2.output(new WateverdatasinkSQL());
env.execute();
于 2018-08-09T14:33:56.320 回答