首页
学习
活动
专区
圈层
工具
发布

Flink DataStream API

为了表达我们复杂的计算逻辑,Flink使用DAG图来表达整个计算逻辑,DAG的每一个点都代表一个基本的逻辑计算单元(算子),数据会按照DAG图的边进行流动,从数据源出发, 流经算子,最后通过Sink节点将结果输出到外部系统...如上图所示,DAG图只是简单的逻辑图,不包含并发(也就是实际的执行情况),在实际执行的时候,每个算子可能被分配到多个实例上,对于同一个实例的上下游算子可以不需要网络, 但是如果上下游算子不在同一个实例上则需要通过网络进行数据传输...FlatMap FlatMap的作用是输入一个元素,输出多个元素,DataStream.flatMap方法通常需要传入一个FlatMapFunction,该函数中有一个flatMap方法用于将一个元素转换为多个元素...从上面的使用可以看出,Flink DataStream AP整个的核心就是代表流数据的DataStream对象,我们整个逻辑运算都是围绕DataStream对象进行操作然后产生新的DataStream...: 在Flink中,最基础的流是DataStream,但是经过上面的操作以后可能会产生各种各样的流类型,目前Flink中的流的转换关系图如下: 在上面各式各样的流中,每个流都有自己独特的特点及操作,

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

    Flink DataStream编程指南

    通过sinks返回结果,例如将数据写入(分布式)文件或标准输出(例如,命令行终端)。Flink程序以各种上下文运行,独立或嵌入其他程序中。执行可能发生在本地JVM或许多机器的集群上。...一,DataSet and DataStream Flink有一个特殊的类DataSet和DataStream来表示程序中的数据。您可以将它们视为不可变的数据集合,可以包含重复的数据。...对于错误处理或需要输出两种不同类型的记录的操作符,可能是有用的。 8,Type Erasure & Type Inference(类型擦除和类型推断) 本节仅与Java相关。...例如,DataStream 和DataStream 的实例对于jvm来说是相同的。 Flink在准备执行程序时(当调用程序的main 方法时)需要类型信息。...Flink Java API尝试以各种方式重建丢弃的类型信息,并将其明确存储在数据集和操作符中。您可以通过DataStream.getType()检索类型。

    4.8K70

    Flink DataStream多样化

    Time和WaterMark GitHub源码(https://github.com/echo9509/flink-learning) DataStream DataStream作为我们最基础的流处理类...,我们可以通过一些方法可以其转换为其他形式的流,其中上图中的SplitStream在Flink 1.13.1版本已经进行了移除,现在DataStream中的方法如下图: connect:将两个流进行合并...作用等同于max,但是他有一个额外的参数,如果该参数设置为true,当比较的的值相等的时候取第1个到来的元素 reduce:对于每一个分区(key),将当前的数据和最后一次reduce得到的元素进行组合然后输出新的元素...Global Windows:全局的window,默认永远不触发窗口,需要自定义Trigger来触发窗口 Evictor 在我们的WindowedStream中我们可以看到一个evictor方法,...: allowedLateness:用于指定允许的延迟的最大时间,设置该时间以后,迟来的数据也可以触发窗口 sideOutputLateData():将迟到的数据发送到旁路输出流 getSideOutput

    40310

    Flink实战(五) - DataStream API编程

    1 概述 Flink中的DataStream程序是实现数据流转换的常规程序(例如,过滤,更新状态,定义窗口,聚合)。 最初从各种源(例如,消息队列,套接字流,文件)创建数据流。...结果通过接收器返回,接收器可以例如将数据写入文件或标准输出(例如命令行终端)。 Flink程序可以在各种环境中运行,独立运行或嵌入其他程序中。...; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment...Flink带有各种内置输出格式,这些格式封装在DataStreams上的算子操作后面: writeAsText()/ TextOutputFormat 按字符串顺序写入数据元。...Flink带有各种内置输出格式,这些格式封装在DataStreams上的 算子操作后面: writeAsText()/ TextOutputFormat- 按字符串顺序写入元素。

    2.3K10
    领券