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

Apache flink 如何检查flink中的数据流是否为空或是否有数据,apache-flink,flink-streaming,flink-cep,flink-sql,Apache Flink,Flink Streaming,Flink Cep,Flink Sql,我是Apache flink的新手,我有一个数据流,它实现了一个进程函数。如果满足某些条件,那么数据流是有效的,如果它不满足条件,我将它写入sideoutput。我能够打印数据流是否可以检查数据流是否为空。我尝试使用datastream.equals(null)方法,但它不起作用。请建议如何通过“empty”来知道数据流是否为空,我假设您的意思是没有数据在流动。在这种情况下你希望做什么 弗林克对“空”流没有一个明确的概念。流始终连接到一个或多个源,这些源可以是有界的,也可以是无界的。有界源(如文

我是Apache flink的新手,我有一个数据流,它实现了一个进程函数。如果满足某些条件,那么数据流是有效的,如果它不满足条件,我将它写入sideoutput。我能够打印数据流是否可以检查数据流是否为空。我尝试使用
datastream.equals(null)
方法,但它不起作用。请建议如何通过“empty”来知道数据流是否为空,我假设您的意思是没有数据在流动。在这种情况下你希望做什么

弗林克对“空”流没有一个明确的概念。流始终连接到一个或多个源,这些源可以是有界的,也可以是无界的。有界源(如文件和集合)最终会在到达其末端时终止(此时它们会发出一个带有MAX_watermark值的水印,您可以使用计时器查看该值),但通常无法知道无界源(如卡夫卡主题)是否会产生任何(更多)数据

但是,您可以观察一些度量,例如NumRecordsOut或NumRecordsOutPerSecond,它们将告诉您是否正在生成任何输出。或者,您的流程函数可以收集有关其行为的信息,并在一个侧面输出上报告(与您已经在做的事情类似)

我认为“空”是指没有数据流动。在这种情况下你希望做什么

弗林克对“空”流没有一个明确的概念。流始终连接到一个或多个源,这些源可以是有界的,也可以是无界的。有界源(如文件和集合)最终会在到达其末端时终止(此时它们会发出一个带有MAX_watermark值的水印,您可以使用计时器查看该值),但通常无法知道无界源(如卡夫卡主题)是否会产生任何(更多)数据

但是,您可以观察一些度量,例如NumRecordsOut或NumRecordsOutPerSecond,它们将告诉您是否正在生成任何输出。或者,您的流程函数可以收集有关其行为的信息,并在一个侧面输出上报告(与您已经在做的事情类似)