写点什么

Flink 数据流元素

作者:阿泽🧸
  • 2023-05-08
    北京
  • 本文字数:697 字

    阅读完需:约 2 分钟

Flink数据流元素

数据流元素在 Flink 中叫作 StreamElement,有数据记录 StreamRecord、延迟标记 Latency Marker、Watermark、流状态标记 StreamStatus 这 4 种,分别有各自不同的用途。


在执行层面上,4 种数据流元素都被序列化成二进制数据,形成混合的数据流,在算子中将混合数据流中的数据流元素反序列化出来,根据其类型分别进行处理。


StreamElement 类体系如图:

1、StreamRecord

StreamRecord 表示数据流中的一条记录(或者叫作一个事件),也叫作数据记录。StreamRecord 包含如下内容。

1)数据的值本身。2)事件戳(可选)。

2、LatencyMarker

LatencyMarker 用来近似评估延迟,LatencyMarker 在 Source 中创建,并向下游发送,绕过业务处理逻辑,在 Sink 节点中使用 LatencyMarker 估计数据在整个 DAG 图中流转花费的时间,用来近似地评估总体上的处理延迟。LatencyMarker 包含如下信息。

1)周期性地在数据源算子中创造出来的时间戳。2)算子编号。3)数据源算子所在的 Task 编号。

3、Watermark

Watermark 是一个时间戳,用来告诉算子所有时间早于等于 Watermark 的事件或记录都已经到达,不会再有比 Watermark 更早的记录,算子可以根据 Watermark 触发窗口的计算、清理资源等。

4、StreamStatus

用来通知 Task 是否会继续接收到上游的记录或者 Watermark。StreamStatus 在数据源算子中生成,向下游沿着 Dataflow 传播。StreamStatus 可以表示两种状态:

1)空闲状态(IDLE)。2)活动状态(ACTIVE)。


数据转换在 Flink 中叫作 Transformation,是衔接 DataStream API 和 Flink 内核的逻辑结构。DataStream 面向开发者,Transformation 面向 Flink 内核,调用 DataStream API 的数据处理流水线,最终会转换为 Transformation 流水线,Flink 从 Transformation 流水线开始执行。

发布于: 刚刚阅读数: 4
用户头像

阿泽🧸

关注

还未添加个人签名 2020-11-12 加入

还未添加个人简介

评论

发布
暂无评论
Flink数据流元素_flink_阿泽🧸_InfoQ写作社区