Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink 如何在ApacheFlink中有条件地处理流数据_Apache Flink_Flink Streaming - Fatal编程技术网

Apache flink 如何在ApacheFlink中有条件地处理流数据

Apache flink 如何在ApacheFlink中有条件地处理流数据,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我正在使用Flink用Java开发我的流媒体工作 在我的例子中,有两个数据源:A和B A不断生成布尔数据:true或false 我正在努力实现这样一个目标: if get false from A get data from B and do some process else do nothing 我如何编写流媒体作业的代码?Flink使用推模式,而不是拉模式。因此,您不会“从B获取数据”,而是在数据从B到达时调用运算符。假设您使用的是数据源a的广播流,则您可以忽略(删除)来

我正在使用Flink用Java开发我的流媒体工作

在我的例子中,有两个数据源:A和B

A不断生成布尔数据:true或false

我正在努力实现这样一个目标:

if get false from A
    get data from B and do some process
else
    do nothing

我如何编写流媒体作业的代码?

Flink使用推模式,而不是拉模式。因此,您不会“从B获取数据”,而是在数据从B到达时调用运算符。假设您使用的是数据源a的广播流,则您可以忽略(删除)来自B的数据,或者在从B获取真数据时对其进行缓冲和处理(但在状态下进行缓冲可能很困难,这取决于您在等待来自服务器的真实信号时可能接收到的数据量)


请注意,如果B是某个队列系统(例如Kafka),则您可以将其建模为来自a的简单单输入运算符,其中您的运算符直接使用Kafka使用者从Kafka主题中提取数据。显然需要更多的工作,但这是一个可能的解决方案。您希望在状态中保存当前偏移量(类似于Flink Kafka源)。而且,与Kafka的分区数量相比,您的运算符的并行性会增加复杂性。能否添加一些详细信息?有几种可能的选择,但如果不知道更多,则很难提出最佳解决方案。B的大小是多少?a的大小是多少?这两种都是流媒体源吗?记录有一些关键的概念吗?这个例子----来自文档中的Flink培训,说明了使用一个流控制另一个流的基本模式。