1.
第一章,有状态的流式处理简介
1.1.
传统数据处理架构
1.1.1.
事务处理
1.1.2.
分析处理
1.2.
有状态的流式处理
1.2.1.
事件驱动应用程序
1.2.2.
数据管道
1.2.3.
流分析
1.3.
开源流处理的演进
1.3.1.
流处理的历史
1.4.
Flink简介
2.
第二章,流处理基础
2.1.
数据流编程简介
2.1.1.
数据流图
2.1.2.
数据并行和任务并行
2.1.3.
数据交换策略
2.2.
并行处理流数据
2.2.1.
延迟和吞吐量
2.2.2.
延迟
2.2.3.
吞吐量
2.2.4.
延迟与吞吐量的对比
2.3.
数据流上的操作
2.3.1.
数据摄入和数据吞吐量
2.3.2.
转换算子
2.3.3.
滚动聚合
2.3.4.
窗口操作符
2.4.
时间语义
2.4.1.
在流处理中一分钟代表什么?
2.4.2.
处理时间
2.4.3.
事件时间
2.4.4.
水位线
2.4.5.
处理时间和事件时间
2.5.
状态和持久化模型
2.5.1.
任务失败
3.
第三章,Flink运行架构
3.1.
系统架构
3.1.1.
Flink运行时组件
3.1.2.
应用部署
3.1.3.
任务执行
3.1.4.
高可用配置
3.2.
Flink中的数据传输
3.2.1.
基于信任度的流控制
3.2.2.
任务链
3.3.
事件时间处理
3.3.1.
时间戳
3.3.2.
水位线
3.3.3.
watermark的传递和事件时间
3.3.4.
时间戳的分配和水位线的产生
3.4.
状态管理
3.4.1.
算子状态
3.4.2.
键控状态
3.4.3.
状态后端
3.4.4.
调整有状态算子的并行度
3.5.
检查点,保存点和状态恢复
3.5.1.
一致的检查点
3.5.2.
从一致检查点中恢复状态
3.5.3.
Flink的检查点算法
3.5.4.
检查点的性能影响
3.5.5.
保存点
4.
第四章,编写第一个Flink程序
4.1.
在IDEA中编写Flink程序
4.2.
下载Flink运行时环境,提交Jar包的运行方式
5.
第五章,Flink-DataStream-API
5.1.
你好,Flink!
5.2.
搭建执行环境
5.3.
读取输入流
5.4.
转换算子的使用
5.5.
输出结果
5.6.
执行
5.7.
产生传感器读数代码编写
5.7.1.
从批读取数据
5.7.2.
从文件读取数据
5.7.3.
以Kafka消息队列的数据为数据来源
5.7.4.
自定义数据源
5.8.
转换算子
5.8.1.
基本转换算子
5.8.2.
键控流转换算子
5.8.3.
多流转换算子
5.8.4.
分布式转换算子
5.9.
设置并行度
5.10.
类型
5.10.1.
支持的数据类型
5.10.2.
为数据类型创建类型信息
5.11.
定义Key以及引用字段
5.11.1.
使用字段位置进行keyBy
5.11.2.
使用字段表达式来进行keyBy
5.11.3.
Key选择器
5.12.
实现UDF函数,更细粒度的控制流
5.12.1.
函数类
5.12.2.
匿名函数
5.12.3.
富函数
5.13.
Sink
5.13.1.
Kafka
5.13.2.
Redis
5.13.3.
ElasticSearch
5.13.4.
JDBC自定义sink
6.
第六章,基于时间和窗口的操作符
6.1.
设置时间属性
6.1.1.
指定时间戳和产生水位线
6.1.2.
周期性的生成水位线
6.1.3.
如何产生不规则的水位线
6.2.
处理函数
6.2.1.
时间服务和定时器
6.2.2.
将事件发送到侧输出
6.2.3.
CoProcessFunction
6.3.
窗口操作符
6.3.1.
定义窗口操作符
6.3.2.
内置的窗口分配器
6.3.3.
调用窗口计算函数
6.3.4.
自定义窗口操作符
6.4.
基于时间的双流Join
6.4.1.
基于间隔的Join
6.4.2.
基于窗口的Join
6.5.
处理迟到的元素
6.5.1.
抛弃迟到元素
6.5.2.
重定向迟到元素
6.5.3.
使用迟到元素更新窗口计算结果
7.
第七章,有状态算子和应用
7.1.
实现有状态的用户自定义函数
7.1.1.
在RuntimeContext中定义键控状态
7.1.2.
使用ListCheckpointed接口来实现操作符的列表状态
7.1.3.
使用连接的广播状态
7.2.
配置检查点
7.2.1.
将hdfs配置为状态后端
7.3.
保证有状态应用的可维护性
7.3.1.
指定唯一的操作符标识符
7.3.2.
指定操作符的最大并行度
7.4.
有状态应用的性能和健壮性
7.4.1.
选择一个状态后端
7.4.2.
防止状态泄露
8.
第八章,读写外部系统
8.1.
应用的一致性保证
8.1.1.
幂等性写入
8.1.2.
事务性写入
8.2.
Flink提供的连接器
8.2.1.
Apache-Kafka-Source连接器
8.2.2.
Apache-Kafka-Sink连接器
8.2.3.
Kakfa-Sink的at-least-once保证
8.2.4.
Kafka-Sink的恰好处理一次语义保证
8.2.5.
文件系统source连接器
8.2.6.
文件系统sink连接器
8.3.
实现自定义源函数
8.3.1.
可重置的源函数
8.4.
实现自定义sink函数
8.4.1.
幂等性sink连接器
8.4.2.
事务性sink连接器
9.
第九章,搭建Flink运行流式应用
9.1.
部署方式
9.1.1.
独立集群
9.1.2.
Apache-Hadoop-Yarn
9.2.
高可用配置
9.2.1.
独立集群高可用配置
9.2.2.
yarn集群高可用配置
9.3.
与Hadoop集成
9.4.
保存点操作
9.5.
取消一个应用
9.6.
从保存点启动应用程序
9.7.
扩容,改变并行度操作
10.
第十章,Flink和流式应用运维
11.
第十一章,Flink-CEP简介
12.
第十二章,Table-API和Flink-SQL
12.1.
整体介绍
12.1.1.
什么是Table-API和Flink-SQL
12.1.2.
需要引入的依赖
12.1.3.
两种planner(old-&-blink)的区别
12.2.
API调用
12.2.1.
基本程序结构
12.2.2.
创建表环境
12.2.3.
在Catalog中注册表
12.2.4.
表的查询
12.2.5.
将DataStream转换成表
12.2.6.
创建临时视图
12.2.7.
输出表
12.2.8.
将表转换成DataStream
12.2.9.
Query的解释和执行
12.3.
流处理中的特殊概念
12.3.1.
流处理和关系代数(表,及SQL)的区别
12.3.2.
动态表
12.3.3.
流式持续查询的过程
12.3.4.
时间特性
12.4.
窗口
12.4.1.
分组窗口
12.4.2.
Over-Windows
12.4.3.
SQL中窗口的定义
12.4.4.
代码练习(以分组滚动窗口为例)
12.5.
函数
12.5.1.
系统内置函数
12.5.2.
UDF
12.6.
Flink与Hive集成
12.6.1.
Maven依赖
12.6.2.
示例程序
12.6.3.
一个复杂一点的程序
12.6.4.
彻底重置hadoop和hive的方法
13.
第十三章,尚硅谷大数据技术之电商用户行为分析
13.1.
数据集解析
13.1.1.
淘宝数据集解析
13.1.2.
Apache服务器日志数据集解析
13.2.
实时热门商品统计
13.3.
实时流量统计
13.4.
Uv统计的布隆过滤器实现
13.5.
APP分渠道数据统计
13.6.
APP不分渠道数据统计
13.7.
恶意登陆实现
13.8.
订单支付实时监控
13.8.1.
使用Flink-CEP来实现
13.8.2.
使用Process-Function实现订单超时需求
13.9.
实时对帐:实现两条流的Join
13.10.
使用Flink-SQL实现实时热门商品统计
13.11.
使用Flink-SQL实现端到端的流式应用
14.
第十四章,常见面试题解答
14.1.
面试题一
14.2.
面试题二
14.3.
面试题三
14.4.
面试题四
14.5.
面试题五
14.6.
面试题六
14.7.
面试题七
14.8.
面试题八
14.9.
面试题九
14.10.
面试题十
14.11.
面试题十一
14.12.
面试题十二
14.13.
面试题十三
14.14.
面试题十四
14.15.
面试题十五
14.16.
面试题十六
14.17.
面试题十七
14.18.
面试题十八
14.19.
面试题十九
14.20.
面试题二十
Light (default)
Rust
Coal
Navy
Ayu
尚硅谷Flink教程
第十四章,常见面试题解答