The Design of the Borealis Stream Processing Engine (CIDR): Borealis 是 Aurora 的分布式、更优化版本的续作。Borealis 提出并解决了 3 个新一代系统的基础问题:(1) dynamic revision of query results, (2) dynamic query modification, 以及 (3) flexible and highly-scalable optimization. 此篇讲解了 Borealis 的设计与实现 —— p.s. 下,Aurora 及续作 Borealis 的命名还真是非常讲究,是学院派的风格 :-D
High-availability algorithms for distributed stream processing (ICDE): 此篇主要聚焦在 streaming system 的高可用性,即故障恢复。文章提出了 3 种 recovery types: (a) precise, (b) gap, 和 (c) rollback,并通过 (1) passive standby, (2) upstream backup, (3) active standby 的方式进行 recover。可与 2007 年 ICDE 的文章对比阅读。
2004 年STREAM: The Stanford Data Stream Management System (Technique Report): 这篇 technique report 定义了一种 Continuous Query Language (CQL),讲解了 Query Plans 和 Execution,讨论了一些 Performance Issues。系统也注意到并讨论了 Adaptivity 和 Approximation 的问题。从这篇 technique report 可以看出,这时的流式计算,更多是传统 RDBMS 的思路,扩展到了处理实时流式数据;这大约也是 2010 以前的 stream processing 相关研究的缩影。
2002 年Monitoring Streams – A New Class of Data Management Applications (VLDB): 大约在 2002 年前后,从实时数据监控(如监控 sensors 数据等)应用出发,大家已经开始区分传统的查询主动、数据被动 (Human-Active, DBMS-Passive) 模式和新兴的数据主动、查询被动 (DBMS-Active, Human-Passive) 模式的区别 —— 此篇即是其中的典型代表。此篇提出了新式的 DBMS 的 Aurora,描述了其基本系统模型、面向流式数据的操作算子集、 优化策略、及实时应用。
Exploiting Punctuation Semantics in Continuous Data Streams (TKDE): 此篇很早的注意到了一些传统的操作算子不能用于无尽的数据流入的场景,因为将导致无尽的状态(考虑 outer join),或者无尽的阻塞(考虑 count 或 max)等。此篇提出,如果在 stream 里加入一些特殊的 punctuation,来标识一段一段的数据,那么我们就可以把无限的 stream 划分为多个有限的数据集的集合,从而使得之前提到的算子变得可用。此篇的价值更多体现在给了 2008 年 watermark 相关的文章以基础,乃至集大成在了 2010 年 Google MillWheel 中。
总结本文分享了四本 Flink 相关的书籍和一份 streaming systems 领域相关的论文列表 20+ 篇,涉及 streaming systems 的设计,实现,故障恢复,弹性扩展等各方面。
如何获取呢?你可以加我的微信:zhisheng_tian,然后回复关键字:Flink 即可无条件获取到。
更多私密资料请加入知识星球!
另外你如果感兴趣的话,也可以关注我的公众号。
本篇文章连接是:
Github 代码仓库https://github.com/zhisheng17/flink-learning/
以后这个项目的所有代码都将放在这个仓库里,包含了自己学习 flink 的一些 demo 和博客。
博客1、Flink 从0到1学习 —— Apache Flink 介绍
2、Flink 从0到1学习 —— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门
3、Flink 从0到1学习 —— Flink 配置文件详解
4、Flink 从0到1学习 —— Data Source 介绍
5、Flink 从0到1学习 —— 如何自定义 Data Source ?
6、Flink 从0到1学习 —— Data Sink 介绍
7、Flink 从0到1学习 —— 如何自定义 Data Sink ?
8、Flink 从0到1学习 —— Flink Data transformation(转换)
9、Flink 从0到1学习 —— 介绍 Flink 中的 Stream Windows
10、Flink 从0到1学习 —— Flink 中的几种 Time 详解
11、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 ElasticSearch
12、Flink 从0到1学习 —— Flink 项目如何运行?
13、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Kafka
14、Flink 从0到1学习 —— Flink JobManager 高可用性配置
15、Flink 从0到1学习 —— Flink parallelism 和 Slot 介绍
16、Flink 从0到1学习 —— Flink 读取 Kafka 数据批量写入到 MySQL
17、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 RabbitMQ
18、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 HBase
19、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 HDFS
20、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Redis
21、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Cassandra
22、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Flume
23、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 InfluxDB
24、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 RocketMQ
25、Flink 从0到1学习 —— 你上传的 jar 包藏到哪里去了
26、Flink 从0到1学习 —— 你的 Flink job 日志跑到哪里去了
27、阿里巴巴开源的 Blink 实时计算框架真香
28、Flink 从0到1学习 —— Flink 中如何管理配置?
29、Flink 从0到1学习—— Flink 不可以连续 Split(分流)?
30、Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文
31、Flink 架构、原理与部署测试
32、为什么说流处理即未来?
33、OPPO 数据中台之基石:基于 Flink SQL 构建实时数据仓库
34、流计算框架 Flink 与 Storm 的性能对比
35、Flink状态管理和容错机制介绍
36、Apache Flink 结合 Kafka 构建端到端的 Exactly-Once 处理
37、360深度实践:Flink与Storm协议级对比
38、如何基于Flink+TensorFlow打造实时智能异常检测平台?只看这一篇就够了
39、Apache Flink 1.9 重大特性提前解读
40、Flink 全网最全资源(视频、博客、PPT、入门、实战、源码解析、问答等持续更新)
41、Flink 灵魂两百问,这谁顶得住?
源码解析1、Flink 源码解析 —— 源码编译运行
2、Flink 源码解析 —— 项目结构一览
3、Flink 源码解析—— local 模式启动流程
4、Flink 源码解析 —— standalone session 模式启动流程
5、Flink 源码解析 —— Standalone Session Cluster 启动流程深度分析之 Job Manager 启动
6、Flink 源码解析 —— Standalone Session Cluster 启动流程深度分析之 Task Manager 启动
7、Flink 源码解析 —— 分析 Batch WordCount 程序的执行过程
8、Flink 源码解析 —— 分析 Streaming WordCount 程序的执行过程
9、Flink 源码解析 —— 如何获取 JobGraph?
10、Flink 源码解析 —— 如何获取 StreamGraph?
11、Flink 源码解析 —— Flink JobManager 有什么作用?
12、Flink 源码解析 —— Flink TaskManager 有什么作用?
13、Flink 源码解析 —— JobManager 处理 SubmitJob 的过程
14、Flink 源码解析 —— TaskManager 处理 SubmitJob 的过程
15、Flink 源码解析 —— 深度解析 Flink Checkpoint 机制
16、Flink 源码解析 —— 深度解析 Flink 序列化机制
17、Flink 源码解析 —— 深度解析 Flink 是如何管理好内存的?
18、Flink Metrics 源码解析 —— Flink-metrics-core
19、Flink Metrics 源码解析 —— Flink-metrics-datadog
20、Flink Metrics 源码解析 —— Flink-metrics-dropwizard
21、Flink Metrics 源码解析 —— Flink-metrics-graphite
22、Flink Metrics 源码解析 —— Flink-metrics-influxdb
23、Flink Metrics 源码解析 —— Flink-metrics-jmx
24、Flink Metrics 源码解析 —— Flink-metrics-slf4j
25、Flink Metrics 源码解析 —— Flink-metrics-statsd
26、Flink Metrics 源码解析 —— Flink-metrics-prometheus
26、Flink Annotations 源码解析
27、Flink 源码解析 —— 如何获取 ExecutionGraph ?
28、大数据重磅炸弹——实时计算框架 Flink
29、Flink Checkpoint-轻量级分布式快照
30、Flink Clients 源码解析原文出处:zhisheng的博客,欢迎关注我的公众号:zhisheng