我是Apache flink的新手,我有一个数据流,如果满足某些条件,则数据流是有效的,则数据流是有效的,如果它不满足条件,我将其写入旁输出。我能够打印数据流是否可以检查数据流是空的还是空的。我尝试使用datastream.equals(null)
方法,但它不起作用。请建议如何知道数据流是否为空
"空",我假设你的意思是没有数据在流动。在这种情况下,您希望做什么?
Flink 没有一个明确定义的"空"流概念。流始终连接到一个或多个源,这些源可以是有界的,也可以是无界的。有界源(如文件和集合(最终通过到达它们的末尾而终止(此时它们会发出值为 MAX_WATERMARK 的水印,您可以使用计时器监视该水印(,但通常无法知道无界源(例如,Kafka 主题(是否会产生任何(更多(数据。
但是,您可以观察到一些指标,例如NumRecordsOut或NumRecordsOutPerSecond,它们将告诉您是否正在产生任何输出。或者,您的进程函数可以收集有关其行为的信息,并在端输出中报告此信息(就像您已经在做的事情一样(。