1

我只想给运营商和消息来源命名。举个例子

在此处输入图像描述

这是我从 Flink Dashboard 获取的执行计划的屏幕截图。在这里,我有 2 个 DataStreams 来源,然后我加入了它们。我的问题是,我可以将这些来源命名为EcgStreamSp02 Stream例如并加入为Join1吗?

我问这个问题的原因是因为它使可视化更容易。另外,当我浏览 Opsclarity页面时,在页面末尾,他们提到了以下内容

请注意,task_name 和 operator_name 已被压缩,因此当跨任务和运算符聚合延迟时,我们仍然可以正确区分任务和运算符。但这些压缩后的名称与在 Flink UI 中看到的不匹配,它将显示一段 Scala 代码作为操作符名称。如果您需要这些名称在公制中有意义,您应该在应用程序的 Flink 代码中提供名称。此压缩值仅适用于那些非常长的默认名称,否则它们不会是合法的度量值。

我还有另一个问题,那就是当我为 CEP 制作一个模式时,执行计划 UI 只是将它显示为一个模式。有什么方法可以显示这种模式是什么样的 A B+ C?D. _ 此外,如果我们有多个模式,我们应该能够将其命名为Patterns{1..n}

4

3 回答 3

3

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");

输出图如下所示

在此处输入图像描述

于 2017-10-28T03:20:54.703 回答
2

要为您的操作员分配更好的名称,请参阅文档。这是您应该做的事情,不仅因为它使执行计划更具可读性,还因为它会使您的保存点随着应用程序的发展而更加稳健地恢复(文档)。

于 2017-10-27T05:43:01.300 回答
2

正如@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());
于 2017-10-28T00:25:21.003 回答