有没有最佳的命名方法 UID
给接线员?能不能简单点
stream.flatMap(new FlatMapFunc).uid("1")
.assignTimestampsAndWatermarks(new TimestampExtractor).uid("2")
.keyBy(r => r.key )
.timeWindow(Time.minutes(10))
.allowedLateness(Time.minutes(30))
.process(new ProcessFunc).uid("3")
或者有一些命名uid的规则/建议?
3条答案
按热度按时间iszxjhcz1#
每个
uid
必须是唯一的,否则作业提交将失败,因此定义格式样式很有帮助。Flink博士详细介绍了uid
命名。它还建议使用.name
与.uid
以便有一个用于记录和度量的命名操作符。一种可能的风格是使用插值字符串来创建一个独特的
uid
每个操作员。以西结有很好的命名标准。。举个例子:
如果操作符是将电子邮件地址更改为域的Map函数,并且源事件来自名为
emailEvents
mapEmailAddressToDomain($emailEvents)
kx5bkwkv2#
好吧,你可以使用任何字符串作为uid,只要它(显然)对你的工作流是唯一的。但我认为,今后flink将提供更好的保存点数据访问,其中包括UID。所以你应该用一个更具描述性的名字,也许和一个数字结合起来,以确保唯一性。
5jvtdoz23#
uid没有命名约定,但在我们的团队中,我们使用的值与operator.name()中使用的值相同。name值用于呈现flinkui中的操作符框
这样我们就有了这样的代码,对我们来说语义和简单: