在flink执行计划ui中显示的命名操作符、源、汇和模式

bqujaahr  于 2021-06-25  发布在  Flink
关注(0)|答案(3)|浏览(310)

我只想给操作员和消息来源起个名字。举个例子

这是一个执行计划的截图,我已经采取了形式Flink Jmeter 板。这里我有两个数据流源,然后加入它们。我的问题是,我能否将这些源命名为ecgstream和sp02 stream,并将join命名为join1?
我之所以问这个问题是因为它使可视化更容易。另外,当我浏览OpsCality页面时,在页面的末尾,他们提到了以下内容
请注意,任务名称和运算符名称已压缩,因此在任务和运算符之间聚合延迟时,我们仍然可以正确区分任务和运算符。但是这些压缩名称与flinkui中的名称不匹配,flinkui将显示一段scala代码作为操作符名称。如果需要这些名称在公制中有意义,则应在应用程序的flink代码中提供名称。此压缩值仅适用于那些非常长的默认名称,否则这些名称将不是合法的度量值。
我还有另一个问题,那就是当我为cep创建一个模式时,执行计划ui只是将它显示为一个模式。有没有什么方法能说明这种模式是什么样的?d。另外,如果我们有多个模式,我们应该能够命名为模式{1..n}

vzgqcmou

vzgqcmou1#

这个问题通过使用 name() 而不是 uid() 如下

// getting RR interval stream
DataStream<RRIntervalStreamEvent> rrIntervalStreamEventDataStream = envrionment.addSource(new RR_interval_Gen()).name("RR Interval stream");

System.out.println("getting transformation for stream 1 = " + rrIntervalStreamEventDataStream.getTransformation());
// getting QRS interval stream

DataStream<qrsIntervalStreamEvent> qrsIntervalStreamEventDataStream = envrionment.addSource(new Qrs_interval_Gen()).name("qrs Interval stream");

输出图如下所示

6psbrbz9

6psbrbz92#

要为运算符指定更好的名称,请参阅文档。这是您应该做的事情,不仅因为它使执行计划更具可读性,而且还因为它将使您的保存点随着应用程序的发展(docs)更稳定地恢复。

kkih6yb8

kkih6yb83#

正如@alpinegizmo所建议的,我向源流添加了uid,如下所示

// getting RR interval stream
DataStream<RRIntervalStreamEvent> rrIntervalStreamEventDataStream = envrionment.addSource(new RR_interval_Gen()).uid("RR interval stream");

// getting QRS interval stream

 DataStream<qrsIntervalStreamEvent> qrsIntervalStreamEventDataStream = envrionment.addSource(new Qrs_interval_Gen()).uid("qrs Interval stream");

但是执行图没有显示这些uid

也就是下面的结果 sout 是3

System.out.println("id for stream 1 is " + stream1.getId());

相关问题