当前位置: 首页 > 知识库问答 >
问题:

Apache Flink:为DataStream API添加侧输入

景嘉实
2023-03-14

注:Stream-1为主流,Stream-2为侧输入。主流正在不断从Kafka那里获取数据。对于侧输入,最初在应用程序启动时从DB加载所有表数据,然后在表数据更新时读取新数据(不频繁)。

示例结构:

DataStream<Person> stream-1 = env.addSource(read data from kafka)....
DataStream<Address> stream-2 = env.addSource(read data from nifi)....
BroadcastStream<String> BroadCastStream = stream-3.broadcast(read data from kafka);

我被指为以下链接。

用缓慢发展的数据连接流:我们用于丰富的侧输入是随着时间发展的(数据是从DB读取的)。这可以通过等待一些初始数据可用,然后处理主输入,并在新数据到达时不断地将其摄取到内部输入结构中来实现。

共有1个答案

申屠裕
2023-03-14

根据最新的回应,@Arvid的建议实际上是这里所需要的。

答案的核心:

即使stream1和stream2具有不同的类型,您也可以轻松地将它们连接起来。然后您可以将广播添加到结果中

import org.apache.flink.api.java.functions.KeySelector;
import org.apache.flink.streaming.api.windowing.assigners.TumblingEventTimeWindows;
import org.apache.flink.streaming.api.windowing.time.Time;
 
...

DataStream<Integer> orangeStream = ...
DataStream<Integer> greenStream = ...

orangeStream.join(greenStream)
    .where(<KeySelector>)
    .equalTo(<KeySelector>)
    .window(TumblingEventTimeWindows.of(Time.milliseconds(2)))
    .apply (new JoinFunction<Integer, Integer, String> (){
        @Override
        public String join(Integer first, Integer second) {
            return first + "," + second;
        }
    });
 类似资料:
  • 我正在将以下数据作为赋值的一部分读取到二叉树(不是严格的二叉查找树)中: 它们被读取到python、和中的三个列表中,其中第一行具有整数是节点数。接下来的n行是键,左,右。其中左是父级左子级的键是,同样右子级的键是,因此例如第一行是4的键是根,意味着2是4的左子级,意味着5是4的右子级,以此类推,-1代表左右意味着这个键是叶子: 此示例的树结构 问题是正在添加根的左右子节点,但没有添加其中的任何子

  • 我想在Apache Flink中实现以下场景: 给定一个具有4个分区的Kafka主题,我想使用不同的逻辑在Flink中独立处理分区内数据,具体取决于事件的类型。 特别是,假设输入Kafka主题包含前面图像中描述的事件。每个事件具有不同的结构:分区1具有字段“a”作为关键字,分区2具有字段“b”作为关键字,等等。在Flink中,我希望根据事件应用不同的业务逻辑,所以我认为我应该以某种方式分割流。为了

  • CSS 在。如果我使用标记,输入文本的红线就会下降,如果字段为空或空,我希望输入框将为红色。我也尝试了,它不会填充文本文件本身,只是在它显示错误时。请告诉我如何进行。已经有很多CSS返回输入标签了,谢谢。

  • 问题内容: 我正在尝试提供一组可以重复或删除的输入。 我发现并使用了以下方法的组合:https : //jsfiddle.net/69z2wepo/36745/ 并且(因为上面的代码无法处理删除操作):https : //codepen.io/lichin-lin/pen/ MKMezg 我可能不需要指向一个特定的输入,因为在我的界面中,您应该始终只添加一个新的(如果之前的一个已填充)(我将在稍后

  • 本文向大家介绍HTML5怎么为输入框添加语音输入的功能呢?相关面试题,主要包含被问及HTML5怎么为输入框添加语音输入的功能呢?时的应答技巧和注意事项,需要的朋友参考一下 x-webkit-speech input 在 chrome 中已经废除了(没查到从哪个版本开始),不过本来这个也只是 chrome 的私有功能,不算 HTML5 规范。目前 chrome 中可以使用 JS 版的语音识别 API

  • 安装(下载 这是Flink的默认配置。 关于这里发生了什么事,有什么建议吗?