首页  

Flink编程模型     所属分类 flink 浏览量 156
数据运算模型
流式   数据一直在生产,计算持续运行
批处理 在预先定义的时间内计算 

处理无界和有界数据


stateful computations over streams

fast scalable fault-tolerant in-memory
event-time large-state  exaclty-once
批处理 处理历史数据集
流处理 处理实时数据
事件驱动

flink基石
Checkpoint state Time Window

基于chandy_Lamport算法实现分布式一致性快照 提供了一致性的语义
丰富的state API , ValueState ListState MapState BroadcastState
实现Watermark机制,支持基于事件时间处理  乱序数据处理 迟到数据容忍
滚动 滑动 会话窗口  灵活的自定义窗口


flink APIS high-level analytics API SQL/table API (dynamic tables) stream & batch data process datastream API (streams windows) dataset API stateful event driven applications ProcessFunction(events,state,time)
Flink 数据流编程模型 SQL high-level language table API declarative DSL datastream / dataset API core APIS stateful stream processing low-level build block (streams state [event]time) 有状态流 函数嵌入到DataStream API中 处理来自一个或者多个流数据的事件 并使用一致、容错的状态 DataStream / DataSet API 是 Flink 提供的核心 API DataSet 处理有界的数据集 DataStream 处理有界或者无界的数据流 数据进行转换计算 map flatmap window keyby sum max min avg join 等 Table API 是以 表 为中心的声明式 DSL 动态表 流表 提供 select project join group-by aggregate 等操作 Flink 提供的最高层级的抽象是 SQL 语法与表达能力 与 Table API 类似
DataStream<String> lines = env.addSource(new FlinkKafkaConsumer(...)); DataStream<Event> events = lines.map((line) -> parse(line)); DataStream<Statistics> stats = events.keyBy("id").timeWindow(Time.seconds(10)) .apply(new MyWindowAggregationFunction()); stats.addSink(new RollingSink(path)); source transformation map transformation keyBy window apply sink Source 数据源 基于本地集合 基于文件 基于网络套接字 自定义source Transformation 数据转换操作 Map FlatMap Filter KeyBy Reduce Fold Aggregations Window WindowAll Union Windowjoin Split Select Project 等 Sink 接收器 常见的Sink 写入文件 打印出来 写入socket 自定义的sink

上一篇     下一篇
flink批处理wordcount实例

flink批处理wordcount实例2

flink介绍

java正则表达式实例之简单分词

git reset 和 diff 使用说明

git工作区域及常用命令