文章目录
- Chapter 1, Streaming 101
- Chapter 2, The What, Where, When, and How of Data Processing
- Chapter 3, Watermarks
- Chapter 4, Advanced Windowing
- Chapter 5, Exactly-Once and Side Effects
- Chapter 6, Streams and Tables
- Chapter 7, The Practicalities of Persistent State
- Chapter 8, Streaming SQL
- Chapter 9, Streaming Joins
- Chapter 10, The Evolution of Large-Scale Data Processing
有需要英文原版pdf的可私聊博主
由于自己的毕设是Flink流处理平台,因此最近在学习流式处理,目前看到写的最好的《Streaming Systems》,所以翻开来看了看,但目前只有英文书籍,没有中文版,故想要用蹩脚的英语翻译一下,以便日后自己或广大想要学习的人查看与参考。
大道至简,我一直相信能用简单的话语把复杂的东西讲明白才是真的厉害,这本书就做到了使用非常流畅的思路解释了分布式流处理,非常的通俗。
Streaming Systems 英文网站
The What, Where, When, and How of Large-Scale Data Processing
by Tyler Akidau, Slava Chernyak, and Reuven Lax
大规模数据处理的内容、地点、时间和方式
作者:泰勒·阿基道、斯拉瓦·切尔尼亚克和鲁文·拉克
关于这本书
流数据是当今大数据领域的一件大事。随着越来越多的企业试图驯服遍布世界各地的海量无界数据集,流式系统终于达到了足以供主流采用的成熟程度。通过这本实用指南,数据工程师、数据科学家和开发人员将学习如何以概念上和平台无关的方式处理流式数据。
本书从泰勒·阿基道(Tyler Akidau)广受欢迎的博客文章《流媒体101》和《流媒体102》扩展而来,让您从入门级到对处理实时数据流的内容、地点、时间和方式有细微理解。您还将并与合著者Slava Chernyak和Reuven Lax深入研究水位线(watermarks)和精确一次处理(exactly-once)。
"如果你关心你的流媒体和批处理作业的正确性,这本书是必读的。它提供了我所见过的关于该主题的最清晰,最合乎逻辑的讨论,并且其想法得到了精彩的解释。
Martin Kleppmann -剑桥大学令人惊叹的《设计数据密集型应用程序》一书的作者
这本书有两个主要部分,每个部分有四章,每个部分后面都有一章相对独立有趣的是从第一部分,Beam模型(第1章到第4章)开始,它最初专注于为谷歌云数据流开发中的高级批处理加流数据处理模型,后来作为Apache Beam捐赠给Apache软件基金会,并且现在在整个工业中或多或少看到它的身影。它由四章组成:
Chapter 1, Streaming 101
第一章,涵盖了流处理的基础知识,建立了一些术语,讨论了流式系统的功能,区分了两个重要的时间域(处理时间和事件时间),最后介绍了一些常见的数据处理模式。
第一章翻译
Chapter 2, The What, Where, When, and How of Data Processing
第2章,数据处理的内容、地点、时间和方式,详细介绍了无序数据上鲁棒性流处理的核心概念,每一个概念都在具体运行示例的上下文中进行了分析,并用动画图表强调时间维度。
Chapter 3, Watermarks
第3章,水位线(Slava编写),它提供了对时间进度度量、它们是如何创建的以及它们如何通过管道传播的深入调查。本文最后分析了两个真实水位线实现的细节。
Chapter 4, Advanced Windowing
第4章,高级窗口,这是第2章结束的部分,深入研究了一些高级窗口和触发概念,如处理时间窗口、会话和继续触发器。
Chapter 5, Exactly-Once and Side Effects
第五章,精确一次性和副作用,在这本书中,他列举了提供端到端精确一次(或有效一次)处理语义的挑战,并详细介绍了三种不同的精确处理方法的实现细节:Apache Flink、Apache Spark和Google Cloud Dataflow。
接下来是第二部分,流和表(第6-9章),它深入研究了流处理的概念,并研究了较低层次的“流和表”思维方式,这种思维方式最近在Apache Kafka社区的一些正直的人中流行,但当然,几十年前由数据库社区的人们发明,因为不是一切都好吗?它也由四章组成:
Chapter 6, Streams and Tables
第6章“流与表”介绍了流与表的基本思想,透过流与表分析了经典的MapReduce方法,然后构建了一个足够通用的流与表理论,以涵Beam模型的全部(以及更广的范围)。
Chapter 7, The Practicalities of Persistent State
第7章,持久状态的实用性,它考虑了流管道中持久状态的动机,研究了两种常见的隐式状态,然后分析了一个实际用例(广告属性),以告知一般状态管理机制的必要特征。
Chapter 8, Streaming SQL
第8章,流式SQL,在关系代数和SQL的背景下研究了流的意义,对比了Beam模型和经典SQL中存在的固有流和表偏差,并提出了一组可能的途径,以将健壮的流式语义整合到SQL中。
Chapter 9, Streaming Joins
第9章,流连接,调查了各种不同的连接类型,分析了它们在流上下文中的行为,最后详细介绍了一个有用但不受支持的流连接用例:时间有效性窗口
Chapter 10, The Evolution of Large-Scale Data Processing
第10章,大规模数据处理的发展,它在MapReduce系列数据处理系统的重点历史中穿行,考察了流媒体系统发展到今天的一些重要贡献。