- Flink实战
- Flink的具体优势
- 1)同时支持高吞吐、低延迟、高性能
- 2)支持事件时间
- 3)支持有状态计算
- 4)高度灵活的窗口
- 5)分布式快照
- 6)基于JVM实现独立的内存管理
- 7)Save Points(保存点)
- Flink编程模型
- 数据集类型
- 有界
- 无界
- flink编程接口(对表的操作方式)
- 高级语言(用SQL)
- SQL
- 声明式语言(用TABLE接口)
- table API
- 核心API(用流批API)
- DateStreamAPI
- DataSetAPI
- 底层构建模块(用底层)
- 高级语言(用SQL)
- flink程序结构
- 环境设定(准备抽水发动机)
- 初始化数据(输入水流)
- 执行转换(水流,分流?)
- lambada
- function
- class实现function
- extends
- 匿名类实现function
- new mapfunction
- 实现richfunction
- new richmapfunction
- class实现function
- 分区KEY指定()
- 位置
- 名称
- key选择器
- 输出数据(输出水流)
- 触发程序(开始接入)
- flink数据类型
- 数据类型支持
- scala样例类
- 原始类型
- POJO
- 元组
- 其它特殊类型
- 数据类型支持
- 数据集类型
- DataStream API
- Dstream编程模型(水流模型)
- DataStream数据输入(输入水流)
- 内置数据源
- 文件csv
- socket
- 集合数据源
- 外部数据源
- 数据源连接器
- 自定义数据源连接器
- 内置数据源
- 数据转换操作(水流分流)
- singleDstream
- Map[Dstream->Dstream] (一进一出)
- FlatMap[Dstream->Dstream] (一进及一个及以上出)
- Filter[Dstrem->Dstream] (一进及一个及以下出)
- KeyBy[Dstream->keyedDstream] (一个管道进多管道出,下游聚合)
- reduce[KeyedDstream->Dstream](下游管道数据合并手动)
- aggregate[KeyedDstream->Dstream](下游管道数据合并自动)
- sum
- min
- minBy
- maxBy
- multiDstream
- union[Dstream->Dstream]
- connect\comap\coflatmap[Dstream->connectedDstream]
- split[Dstream->SplitDstream]
- union的逆向
- select[splitDstream->Dstream]
- iterator
- 物理分区操作
- 随机
- shuffle
- 重调
- 比例平衡
- 轮流
- 全局平衡
- 自定义
- 广播
- 随机
- singleDstream
- 数据输出
- 基本数据输出
- 文件
- socket
- 客户端
- 第三方数据输出
- mysql
- kafka
- clickhouse
- 基本数据输出
- 时间概念和watermark
- 时间概念
- 事件时间(event)
- 接入时间(lngestion)
- 处理时间(process)
- watermark
- 水位线
- 衡量数据处理进度
- 水位线
- 例子: watermark=2.5 ,窗口为10 =》 8,11,9,12.5
- 时间概念
- windows窗口计算
- windows Assigner窗口分配器
- 时间
- 滚动窗口(一段段)
- 固定时间大小
- 滑动窗口(重复切)
- 滑动时间
- 窗口时间
- 会话窗口
- 会话gap
- 不活跃数据时间周期
- 会话gap
- 全局窗口
- 单个窗口计算
- Trigger触发
- 滚动窗口(一段段)
- 数量
- 自定义
- 时间
- windows Function
- 增量窗口
- ReduceFunction
- 两相同类型聚合
- AggregateFunction
- FoldFunction
- 窗口元属与外部元素合并
- ReduceFunction
- 全量窗口
- processwindowFunction
- 所有数据元素
- 状态数据
- 窗口元数据
- processwindowFunction
- 增量窗口
- Trigger窗口触发
- 自定义
- 内置
- eventTimeTrigger
- watermark和窗口endtime
- processTimeTrigger
- process与endTime
- countinuousEventTimeTrigger
- countinuousProcessTimeTrigger
- CountTrigger
- 数据量
- DeltaTrigger
- PurgingTrigger
- eventTimeTrigger
- Evictor数据剔除器
- countEvictor
- 数量剔除器
- DeltaEvictor
- 阈值剔除器
- TimeEvictor
- 时间剔除器
- countEvictor
- 延迟数据处理
- 丢弃迟到事件
- 重定向迟到事件
- 重定向另外Dstream
- 回填
- 重定向另外Dstream
- 基于迟到事件更新
- 延迟容忍度
- 连续窗口计算
- 独立窗口计算
- 连续窗口计算
- windows多流合并
- 作业链和资源组
- AsynchronousI/O异步
- windows Assigner窗口分配器
- DataStream数据输入(输入水流)
- Dstream编程模型(水流模型)
- Flink状态管理和容错
- checkPoints/savePoints
- checkpoint检测机制
- 目的
- 应用异常算子恢复
- 使用
- cp开启和间隔设定
- exactly-once和at-least-once
- exactly-once
- 准确一次
- at-least-once
- 至少一次
- exactly-once
- cp超时时间
- 检查点最小间隔
- 避免cp积压
- 最大并行度执行数量
- 提高cp效率
- 外部检查点
- 外部系统
- 流程
- 第一步:所有 source 节点 trigger Checkpoint
- 第二步:source 节点向下游广播 barrier
- 第三步:当 task 完成 state 备份后,会将备份数据的地址(state handle)通知给 Checkpoint coordinator
- 第四步:下游的 sink 节点收集齐上游两个 input 的 barrier 之后,会执行本地快照
- 第五步: Checkpoint coordinator 收集齐所有 task 的 state handle,向持久化存储中再备份一个 Checkpoint meta 文件
- 目的
- SavePoints机制
- 升级维护集群保存状态
- 有状态计算
- 状态类型
- KeyedState
- NoneKeyedState
- 状态类型
- QuerableState
- Querable架构
- QuerAbleStateClient
- 提交查询
- 获取结果
- QuerableStateClientProxy
- 接受Client请求
- 处理client请求
- 访问jobmanager
- 访问taskmanager
- 返回结果
- QuerableStateServer
- 接收Proxy请求
- 运行在Taskmanager
- 从状态管理器获取
- QuerAbleStateClient
- Querable架构
- 状态管理器(水流状态存储)
- StateBackend
- memorystatebackend
- Fsstatebackend
- RocksDBstatebackend
- 管理配置
- 应用级别
- 集群级别
- StateBackend
- checkpoint检测机制
- checkPoints/savePoints
- DateSet API
- DataSources(文件集合通过第三方调用接口传输)
- 文件类数据
- 集合类数据
- 第三方文件系统
- 通用数据接口
- DataSet转换(数聚联合排序)
- 数据处理
- map
- flatmap
- mappartiton
- filter
- 聚合操作
- reduce
- 两两合并成一个元素
- reducegroup
- 一组元素合并一个或多个元素
- Aggregate
- 一组元素合并成单值
- distinct
- 去重
- reduce
- 多表关联
- join
- outer join
- left
- right
- full outer join
- cross
- 笛卡尔积
- 集合操作
- union
- 合并
- rebalance
- 重平衡
- hashpartition
- keyhash重分区
- RangePartition
- SortPartition
- union
- 排序操作
- first-n
- minby/maxby
- 数据处理
- DataSinks数据输出
- 文件输出接口
- 调用数据接口
- 迭代计算
- 增量迭代
- 全量迭代
- 广播变量与分布式缓存
- 广播变量(数据共享)
- 分布式缓存(文件)
- DataSources(文件集合通过第三方调用接口传输)
- Table API
- TableEnvironment基本操作
- 内部Catalog注册
- 内部Table注册
- TableSource注册
- 外部数据源
- TableSink注册
- 输出
- 外部Catalog注册
- DataStream或DataSet与Table转换
- 内部Catalog注册
- 外部连接器
- 表连接Table connector
- flileSystm connector
- kafka connector
- ES
- Table Format表格式
- csv
- json
- avro
- table表约束
- update modes更新方式
- 表连接Table connector
- 时间概念
- 事件事件
- 接入时间
- 处理时间
- TemporalTable临时表
- FlineTableAPI
- 数据查询过滤
- scan
- select
- filter
- where
- 窗口操作
- group by window
- 滚动
- 滑动
- 会话
- over window
- 类似rownumber
- group by window
- 聚合操作
- groupby
- group by window
- overwindow
- distinct
- 多表关联
- inner join
- outer join
- time windowed join
- join with table function
- join with temp table
- 排序操作
- orderby
- 数据写入
- insert into
- 数据查询过滤
- 自定义函数
- 标量函数
- 单个或多个输入,输出确定类型单列
- 制表函数
- 单个或多个输入,输出单列或多列
- 聚合函数
- 一行和多行变一个标量值
- 标量函数
- FlinkSQL
- 执行SQL
- SQL中引用table
- SQL中应用注册表
- SQL中数据输出
- 数据查询与过滤
- select
- where
- groupwindows窗口操作
- 滚动
- 滑动
- 会话
- 数据聚合
- groupby
- group bywindow
- over window
- distinct
- grouping sets
- having
- UDAGG
- 自定义聚合函数
- 多表关联
- inner join
- outer join
- Timewindowed join
- join with table function
- 集合操作
- union
- union all
- intersect/excrpt
- in
- exists
- 执行SQL
- TableEnvironment基本操作
- Flink的具体优势
大数据之-flink
于 2022-01-25 16:23:53 首次发布