如何检查flink中的数据流是否为空或是否有数据

qyswt5oh  于 2021-06-26  发布在  Flink
关注(0)|答案(1)|浏览(1239)

我对apache flink不熟悉,我有一个数据流,它实现了一个进程函数如果满足了某些条件,那么数据流就是有效的,如果它不满足条件,我就把它写到sideoutput。我可以打印数据流是否可以检查数据流是空的或空的 datastream.equals(null) 方法,但它不工作。请建议如何知道数据流是否为空

tuwxkamq

tuwxkamq1#

所谓“空”,我想你的意思是没有数据流动。在这种情况下你希望做什么?
Flink对“空”流没有一个明确的定义。流总是连接到一个或多个源,这些源可以是有界的,也可以是无界的。有界源(如文件和集合)最终会在到达它们的末端时终止(此时它们会发出一个带有值max\u watermark的水印,您可以用计时器来观察),但一般来说,无法知道无界源(如Kafka主题)是否会产生任何(更多)数据。
但是,您可以观察到一些度量,例如numrecordsout或numrecordsoutpersecond,它们将告诉您是否正在生成任何输出。或者,您的流程函数可以收集有关其行为的信息,并在一个侧输出上报告这一点(与您已经在做的事情类似)。

相关问题