首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flink DataStream API

为了表达我们复杂的计算逻辑,Flink使用DAG图来表达整个计算逻辑,DAG的每一个点都代表一个基本的逻辑计算单元(算子),数据会按照DAG图的边进行流动,从数据源出发, 流经算子,最后通过Sink节点将结果输出到外部系统...Function Function是Flink中我们所有自定义操作的接口(包括Flink自己实现的一些操作),该接口没有任何方法,只是用来声明实现该接口的类可以用做算子的处理逻辑。...从上面的使用可以看出,Flink DataStream AP整个的核心就是代表流数据的DataStream对象,我们整个逻辑运算都是围绕DataStream对象进行操作然后产生新的DataStream...对象,对于DataStream 单条记录我们可以进行filter、map等操作,或者基于window对多条记录进行操作,同时我们也可以将单条流(DataStream)进行拆分,也可以对多条流进行合并,如下图...: 在Flink中,最基础的流是DataStream,但是经过上面的操作以后可能会产生各种各样的流类型,目前Flink中的流的转换关系图如下: 在上面各式各样的流中,每个流都有自己独特的特点及操作,

20020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flink DataStream编程指南

    一,DataSet and DataStream Flink有一个特殊的类DataSet和DataStream来表示程序中的数据。您可以将它们视为不可变的数据集合,可以包含重复的数据。...DataStream windowed = input .keyBy(/*define key here*/) .window(/*window specification*/); Flink...八,Supported Data Types Flink对DataSet或DataStream中的元素类型设置了一些限制。其原因是系统分析类型以确定有效的执行策略。...例如,DataStreamDataStream 的实例对于jvm来说是相同的。 Flink在准备执行程序时(当调用程序的main 方法时)需要类型信息。...Flink Java API尝试以各种方式重建丢弃的类型信息,并将其明确存储在数据集和操作符中。您可以通过DataStream.getType()检索类型。

    4.3K70

    Flink DataStream 类型系统 TypeInformation

    Flink DataStream 应用程序所处理的事件以数据对象的形式存在。函数调用时会传入数据对象,同时也可以输出数据对象。因此,Flink 在内部需要能够处理这些对象。...为了能够更高效的做到这一点,Flink 需要详细了解应用程序处理的数据类型。Flink 使用类型信息的概念来表示数据类型,并为每种数据类型生成特定的序列化器、反序列化器以及比较器。...at org.apache.flink.api.dag.Transformation.getOutputType(Transformation.java:479) at org.apache.flink.streaming.api.datastream.DataStream.addSink...(DataStream.java:1236) at org.apache.flink.streaming.api.datastream.DataStream.print(DataStream.java...使用场景 4.1 Table 转 DataStream Table 转 DataStream 的时候,Table 并清楚 DataStream 的数据结构,因此需要给当前转换出来的 DataStream

    4.2K51

    flinkDataStream2

    这是接上文的flinkDatastream1,文章链接 https://cloud.tencent.com/developer/article/2428018?...1、函数类(Function Classes) Flink暴露了所有UDF函数的接口,具体实现方式为接口或者抽象类,例如MapFunction、FilterFunction、ReduceFunction...富函数类”也是DataStream API提供的一个函数类的接口,所有的Flink函数类都有其Rich版本。富函数类一般是以抽象类的形式出现的。...可以通过调用DataStream的broadcast()方法,将输入数据复制并发送到下游算子的所有并行任务中去。...也就是基于一个DataStream,定义一些筛选条件,将符合条件的数据拣选出来放到对应的流里。 案例需求:读取一个整数数字流,将数据流划分为奇数流和偶数流。

    8100

    Flink DataStream多样化

    Hi~朋友,关注置顶防止错过消息 DataStream KeyedStream ConnectedStreams WindowedStream WindowAssigner Evictor Trigger...Time和WaterMark GitHub源码(https://github.com/echo9509/flink-learning) DataStream DataStream作为我们最基础的流处理类...,我们可以通过一些方法可以其转换为其他形式的流,其中上图中的SplitStream在Flink 1.13.1版本已经进行了移除,现在DataStream中的方法如下图: connect:将两个流进行合并...) cn.sh.flink.learning.daemon.KeyedStreamDaemon ConnectedStreams 通过DataStream的connect方法我们可以将两个流进行合并,合并后的流就是...,由于网络延迟或者其他原因,虽然EventTime是递增的,但是到达Flink的顺序却是不一定的,为了应对乱序问题我们引入了WaterMark。

    26010

    Flink DataStream 如何实现双流Join

    Flink DataStream API 为我们提供了3个算子来实现双流 join,分别是: join coGroup intervalJoin 下面我们分别详细看一下这3个算子是如何实现双流 Join...下面我们一起看一下如何实现上图所示的滑动窗口 Join: DataStream result = orangeStream.join(greenStream) .where...Interval Join Flink 中基于 DataStream 的 Join,只能实现在同一个窗口的两个数据流进行 Join,但是在实际中常常会存在数据乱序或者延时的情况,导致两个流的数据进度不一致...Flink 基于 KeyedStream 提供的 Interval Join 机制可以对两个 keyedStream 进行 Join, 按照相同的 key 在一个相对数据时间的时间段内进行 Join。...-03-23 12:09:04 c,5,2021-03-23 12:09:05 c,7,2021-03-23 12:09:07 Join 效果如下所示: image.png 参考: Joining Flink

    2.8K41
    领券