flink1.12.x 先connect连接流,再拆分流-侧流(side output)

说明

与 flink1.12.x 拆分流-侧流(side output) 类似,但有区别

有时处理数据,要将 两个流connect连接,然后对 数据 进行不同的处理,就需要 把流进行拆分

使用流程

定义OutputTag

类似一个容器,需要拆分成几个流,就定义几个

OutputTag<Order> ot = new OutputTag<>("说明", TypeInformation.of(Order.class));

使用 CoProcessFunction 来进行拆分

// 对两个流的数据分别做处理
SingleOutputStreamOperator<String> map = connect.process(new CoProcessFunction<String, String, String>() {
    @Override
    public void processElement1(String value, Context ctx, Collector<String> out) throws Exception {

    }

    @Override
    public void processElement2(String value, Context ctx, Collector<String> out) throws Exception {

    }
});

获取数据

DataStream<Order> otDS = soso.getSideOutput(ot);

原文出处:/show_1IX44ATilQdI.html