Flink编程模型是一个分层的抽象体系,支持批处理和流处理的统一计算框架,其核心设计围绕数据流处理展开。以下是关键要点:

数据处理分层

Flink提供四层API抽象:

  1. SQL/Table API:最高层抽象,依据声明式语法处理结构化资料,支持流批统一查询
  2. DataStream/DataSet API:面向开发者的核心接口,DataStream用于无界流处理,DataSet用于有界批处理
  3. Stateful Stream Processing:底层API,可直接操控状态、时间等原语,适用于复杂事件处理

核心编程结构

所有Flink工具包括以下基本流程:

  1. 创建执行环境(批处理/流处理)
  2. 定义数据源source(如文件、Kafka等)
  3. 应用转换操作transformation(map、filter、window等)
  4. 指定结果输出位置sink
  5. 触发程序执行(延迟执行机制)

流批统一特性

  • 有界/无界数据集统一处理:通过时间范围将无界数据切分为有界数据块,实现批处理语义
  • 统一状态管理:承受键控状态(Keyed State)和算子状态(Operator State),保证精确一次处理语义

时间与窗口机制

  • 时间类型:事件时间(Event Time)、处理时间(Processing Time)、摄取时间(Ingestion Time)
  • 窗口类型:滚动/滑动时间窗口、计数窗口、会话窗口,承受事件时间乱
posted on 2025-10-24 13:15  lxjshuju  阅读(8)  评论(0)    收藏  举报