在这个信息爆炸的时代,数据就像新石器时代的火种一样,给我们带来了无尽的可能性和机遇。而本书,就是你掌控这个“火种”的好伙伴!数据已经成为推动商业和科学进步的关键要素之一。随着数据量的爆炸式增长,如何高效地分析和利用数据成为各行各业迫切需要解决的问题。特别是在实时数据处理方面,传统的数据处理方法已经无法满足日益增长的需求,这就需要我们不断探索新的方法和技术来构建实时分析系统。
翻译本书是一次奇妙的体验,通过作者的文字,可以深刻地感受到他对技术的热情和理解深度。本书深入探讨了实时分析的概念、基础知识和应用案例,将读者引入了实时数据处理的世界。通过一个生动的外卖服务公司的案例,我们看到了实时分析系统如何在实际业务中发挥重要作用,解决诸多业务难题。
在这本书中,我们不仅了解到了实时分析系统的不同类型和技术生态系统,还深入学习了如何运用Kafka Streams和Apache Pinot等工具构建实时流处理应用和分析系统。作者以详尽的案例和技术解读,向我们展示了如何处理复杂且规模庞大的数据处理任务,为读者呈现了一个既具有挑战性又充满活力的领域。
更为重要的是,本书不仅关注技术细节,还着眼于实践应用。在讨论如何捕获数据变化和处理数据状态随时间演变的同时,书中也提出了将实时分析应用从本地机器转移到生产环境的注意事项,为读者提供了宝贵的实践经验和指导。
在这个充满挑战与机遇的时代,实时分析系统已经成为企业赖以生存和发展的关键利器。本书的问世,不仅为我们带来了技术上的启发,更为我们探索和应用实时数据处理带来了新的思路和方法。我坚信,本书将成为实时分析领域的重要参考,为在这个领域探索的广大读者提供强有力的支持与指导。
学无止境,就像我们中国古代的智者所说的一样,千里之行,始于足下,学习是一个不断探索、不断前行的过程。在这个过程中,我们不仅要保持谦虚,虚心地学习,更要保持勇气和创新精神,去探索未知的领域。
我在TalkingData从事数据相关工作多年,其间,主导过数据收集、整理,建模,也服务过众多客户的数据营销场景。一直以来,我都梦想着有机会参与一本数据书籍的翻译工作,这次能够加入本书的翻译团队,我感到非常荣幸。
特别要感谢翻译团队的曹洪伟和王同林。曹洪伟曾担任百度DuerOS的首席布道师,但更值得称道的是他全栈专家的身份。在本次翻译中,他用他的专业知识和丰富经验为本书的翻译工作提供了宝贵的支持和指导。而王同林作为一位经验丰富的高级产品经理,以敏捷的思维和严谨细致的态度为翻译工作注入了活力,确保了译文的准确性和流畅性。最后,衷心感谢所有参与本书翻译和出版工作的人员,包括原作者、出版社和编辑团队。没有你们的支持和帮助,这本书无法顺利完成。
希望这本书能够成为你们数据探险的好伙伴,能够为你们在实时分析领域的学习和工作带来帮助和启发,可以让你们轻松愉快地掌握实时分析技能,与数据世界为伴。祝愿你阅读愉快,收获满满!
卢健
2024年3月8日
在21世纪初期,当我刚从事软件工程工作时,数据分析往往在软件系统设计完成后才会被考虑到。对于业务分析师来说,如果批处理作业能够每天运行一次,从运营数据库中提取数据,并将其加载到数据仓库中,让他们能够查看前一天或上周的数据、创建报告、运行一次性查询等,他们就非常满足了。
除了特意编写的高度优化的查询操作之外,面向用户的分析理念几乎是不存在的:为成千上万的并发用户提供基于最新数据的分析工作。自那以来,人们对实时数据分析的需求已经大幅增加。欺诈检测、资源规划、内容推荐、预测分析等用例都需要最新的数据才能提供价值。例如,如果银行检测到你的信用卡被盗刷,你会希望银行立即冻结它,而不是等到明天,对吗?
Apache Kafka(用于数据流)、Apache Flink(流处理)、Apache Pinot(数据分析)和Apache Superset(数据可视化)等工具和平台为实时分析提供了良好的基础,并在过去几年中得到了巨大的发展。与此同时,当你开始实施第一个用例时,仍然可能面临挑战,你可能会问自己一些问题,比如:出于不同目的,该选择什么样的工具?如何将各个部分组合在一起,形成一个连贯的解决方案?投入生产时会存在哪些挑战?如何克服这些挑战?
Mark的这本书是解决这些问题和许多其他问题的宝贵指南。他从基础知识(实时分析到底是什么)开始,全面概述了该领域的软件生态系统,书中还讨论了作为领先实时分析平台之一的Apache Pinot,并深入研究了生产考虑因素以及诸如地理空间查询和更新操作(这是大多分析型数据库中众所周知的棘手部分)等更具体的方面。
我在Debezium[一个用于变更数据捕获(Change Data Capture,CDC)的开源平台]上工作了很多年,看到整章内容专门讨论这个主题感到特别高兴。CDC在实时数据管道中扮演着重要角色,它的一个核心用例是将来自运营数据库(如MySQL或PostgreSQL)的实时数据更改传送到诸如Apache Pinot之类的分析平台。在Debezium社区,这种情况一次又一次地出现。作为一名经验丰富的CDC用户,Mark出色地解释了CDC的关键用例和实施方法,并展示了如何在综合示例中设置Debezium。
对细节的高度关注和实用的动手风格是整本书的一个关键特色:任何概念性的讨论都会伴随着实际的示例,这让读者能够详细地了解如何将不同的想法和技术付诸实践。这本书非常适合从头到尾阅读,当然,如果你想深入了解某个特定主题,也可以选择对应的章节来阅读。
我们周围的世界是实时的,我们构建的任何软件系统都需要考虑到这一事实。随着你实施自己的分析用例以获得对数据的实时洞察,这本书将很快派上用场,我相信它将在你的办公桌上长期占据重要的位置。
Gunnar Morling
2023年6月于德国汉堡