深入浅出Greenplum分布式数据库:原理、架构和代码分析

978-7-115-60505-4
作者: 王凤刚
译者:
编辑: 郭媛

图书目录:

详情

  在云计算和互联网快速发展的驱动下,分布式技术领域产生了很多新的热点,分布式数据库就是其中之一。但是,目前对分布式数据库的理解和研究多停留在理论层面,本书以Greenplum分布式数据库为例,深入剖析分布式技术在工业级产品里的实现细节,为读者呈现从理论到实践的“全景图”。   本书共3篇:第1篇主要介绍分布式数据库基础理论,包括经典的CAP理论、一致性算法相关的理论、并发控制相关的理论等;第2篇具体介绍Greenplum数据库,从分布式事务、分布式计算和分布式存储3个方面,深入代码层级,讲述分布式理论在工业上的实现;第3篇是总结和展望,介绍云原生数据库和新技术带给Greenplum和数据库管理系统的机遇和挑战。   本书打破以理论介绍和架构介绍为主的思路,深入分析工业化的实现,实践性强。本书主要面向数据库领域的科研工作者和学者,也可作为高校计算机类专业的分布式数据库相关课程的参考资料。

图书摘要

版权信息

书名:深入浅出Greenplum分布式数据库原理、架构和代码分析

ISBN:978-7-115-60505-4

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

版  权

著    王凤刚

责任编辑 郭 媛

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内 容 提 要

在云计算和互联网快速发展的驱动下,分布式技术领域产生了很多新的热点,分布式数据库就是其中之一。但是,目前对分布式数据库的理解和研究多停留在理论层面,本书以Greenplum分布式数据库为例,深入剖析分布式技术在工业级产品里的实现细节,为读者呈现从理论到实践的“全景图”。

本书共3篇:第1篇主要介绍分布式数据库基础理论,包括经典的CAP理论、一致性算法相关的理论、并发控制相关的理论等;第2篇具体介绍Greenplum数据库,从分布式事务、分布式计算和分布式存储3个方面,深入代码层级,讲述分布式理论在工业上的实现;第3篇是总结和展望,介绍云原生数据库和新技术带给Greenplum和数据库管理系统的机遇和挑战。

本书打破以理论介绍和架构介绍为主的思路,深入分析工业化的实现,实践性强。本书主要面向数据库领域的科研工作者和学者,也可作为高校计算机类专业的分布式数据库相关课程的参考资料。

推 荐 语

随着数字化转型的深入,企业和机构已经开始从应用驱动的视角切换到数据驱动的视角。对数据资源的深耕,使得分析型数据库从幕后逐步进入大众视野。基于PostgreSQL体系的开源数据库Greenplum是大规模并行处理(massively parallel processing,MPP)数据库的典范。这本书的作者是Greenplum开源代码贡献者,积累了丰富的500强企业的一线实战经验。这本书通过对Greenplum关键模块的源码分析,向读者深入浅出地展示了分布式原理和技术如何在工业级产品中应用和实现,用最朴实的方式介绍了一个分布式数据库的架构和诸多细节。

数据库、操作系统和芯片成为信息化时代举足轻重的基础技术。数据库承载着数字世界的底座功能。希望这本书能吸引更多的科技人员对数据库产生兴趣,并加入数据库的研发队伍。

——冯雷,杭州拓数派科技发展有限公司创始人兼CEO,Greenplum中国创始人

Greenplum是业界领先的分布式数据处理平台,它在开源PostgreSQL的基础上引入了MPP架构,具有大规模数据的分析处理能力。经过十多年积累和打磨,Greenplum在稳定性、SQL接口的标准性、分布式事务处理能力、灵活高效的存储方式、高性能的数据加载、高可用性方面都有长足的进步。在云计算和云原生盛行的今天,Greenplum与云平台融合,碰撞出了新的火花。

Greenplum代码从2015年开始开源,获得了广泛关注,在全球有上百位来自美国、中国、俄罗斯、日本、英国、德国、芬兰、瑞士等国家的贡献者,约有半数的贡献来自中国开发者。在国内,Greenplum中文社区尤为活跃,线上线下活动丰富,越来越多的人开始了解和使用Greenplum。

这本书的作者有多年的云计算和分布式系统的开发与运维经验,活跃于Greenplum中文社区和与其相关的HAWQ开源社区,是Greenplum和HAWQ项目的贡献者。这本书通过源码级别的分析,向读者介绍了分布式理论在工业级产品Greenplum中的实现和落地。希望通过这本书,数据库从业者和爱好者可以更加深入和全面地了解Greenplum,为社区的繁荣和Greenplum项目做出更多贡献。

——姚延栋,北京四维纵横数据技术有限公司创始人兼CEO

2010年,Greenplum在国内走上了快车道。2015年,Greenplum代码开源,开启了庞大的开源社区模式,其社区非常活跃,为Greenplum贡献了很多高质量的代码。同时,在国家信息技术应用创新产业的号召下,前 Pivotal 研发团队的骨干也开始创业,研发出基于Greenplum的国产MPP数据库。得益于Greenplum和其基于的PostgreSQL的友好开源协议,大家可以自由地修改和贡献大量的源码和新功能。在此背景下,我们对一本深入讲解Greenplum源码的书的需求愈加强烈。

目前市场上有关Greenplum的图书,有讲最佳实践和日常运维的,有讲基本架构和模块分析的,即便触及源码层面的内容,也无法像这本书那样对二次开发和问题修复提供有效的指导和帮助。本人有幸与本书作者深入探讨过该问题,作者希望能为国内的数据库发展贡献自己的一份力量,为国内的数据库人才发展提供通用型的指导和帮助。作者利用业余时间,耗时两年,几经修改,终于著成本书。

我与作者结识多年,共同见证了Greenplum在中国的快速发展。很荣幸得到作者邀请为这本书写推荐语,相信这本书将会为Greenplum在国内的飞速发展树立起一座新的里程碑。

衷心祝愿Greenplum的爱好者及开发者能在学习本书后更上一层楼。

——陈淼,Greenplum数据库专家,解决方案架构师

随着大数据时代的真正到来,对更多类别和更大规模的数据进行快速处理而获得更多的商业价值,已成为企业管理者的共识和孜孜以求的目标。Greenplum作为高扩展和高性能的MPP数据库,得到了越来越多企业和组织的认可。然而分布式数据库的学习曲线较为陡峭,数据库从业者在早期阶段可能会感到困惑和无从下手。这本书提供了从分布式数据库的理论到产品级实践的介绍和解读,力求给更多的数据库开发人员传道解惑。

这本书从分布式事务、分布式计算和分布式存储几个角度,分析了Greenplum数据库的架构和实现细节。同时,这本书还分析了许多代码片段,让读者可以通过更加直观的方式加深对分布式数据库相关理论的理解和掌握。

作为作者的校友与前同事,我一直非常认可他对待工作严谨认真的态度。这次他将书稿发给我后,我快速浏览了一遍,字里行间还是熟悉的风格:严谨、细致而又通俗易懂。

总的来说,这是一本非常不错的分布式数据库理论和实践相结合的书,对于从事数据库开发工作的人来说,它是一本可随时查阅的参考书。无论是企业还是个人,都会从这本书中得到意想不到的收获。

——陈开来,前Autonomic中国区总监

数据库是信息产业的三大基础技术(还有芯片和操作系统)之一。近几年来,国内外涌现出相当多优秀的数据库产品和创业企业,其中有不少以PostgreSQL或Greenplum为基础进行持续创新。Greenplum作为分布式MPP数据库的代表产品,以其开源且开放的生态、精简高效的架构、成熟稳定的产品化能力为大量用户、开发者提供了坚实的服务底座和产品基石。

这本书的作者是一位具有丰富实践经验和技术深度的Greenplum专家,我与他相识多年,为其对技术的执着追求感到由衷的赞叹和敬佩!该书为读者深入了解Greenplum的内部工作原理提供了一个难得的机会,从Greenplum架构、存储、查询优化、并行执行等方面入手,深入剖析了Greenplum的源码实现细节,使读者能够深入了解Greenplum的内部运作机制,对于Greenplum的使用者和开发者来说,是一本不可多得的参考指南。

期望本书能够帮助、激励广大从事、关注、热爱数据库相关研发领域的同人,继往开来,为人类数字化技术的进步贡献力量。

——魏一,北京酷克数据科技有限公司(HashData)副总裁,Greenplum数据库专家

前  言

为什么写本书

Greenplum公司最初是在2003年由两家公司(Metapa和Didera)合并而成的,创始人是斯科特·亚拉(Scott Yara)和卢克·洛纳根(Luke Lonergan)。公司最早的产品叫作Bizgres,是通过二次开发PostgreSQL数据库,并将其架构改造成大规模并发处理的架构开发而成的。2006年Sun Microsystems公司成为Bizgres项目的合作方之一。Bizgres项目被开发成能在多个操作系统上使用的软件,如Linux操作系统、Solaris操作系统、Windows操作系统。2008年 Bizgres 正式改名为 Greenplum,主要的运行系统变成 Linux 操作系统。2010 年前后Greenplum公司被EMC公司收购,Greenplum成为EMC公司大数据套件的产品之一。2013年Pivotal公司成立,Greenplum产品被Pivotal公司纳入产品线。2019年Pivotal公司被VMware公司收购。

从Greenplum数据库的发展历程和时间线中,能看到MPP系统的简史。同一时代的Hadoop产品是MPP系统的代表。和Hadoop产品不同,数据库管理系统将MPP逻辑封装了起来,终端用户的使用方式和使用习惯与使用单机版的数据库管理系统的方式和习惯保持一致,这样既降低了用户的学习门槛,又保证了产品对于业务的可用性。

笔者基于对分布式理论和分布式数据库领域多年的研究和实践经验,把分布式理论、数据库技术结合起来,深入浅出地分析了工业级成熟产品Greenplum。本书如能促成更多的科研工作者和学者参与到分布式数据库领域的发展中,笔者将感到非常荣幸。

如何阅读本书

本书共3篇。第1篇介绍分布式数据库的基础理论,有基础的读者可以快速浏览或者略过。第2篇分3个方面介绍Greenplum数据库的具体实现,涉及详细的源码分析,建议读者从异步社区网站下载本书配套源码,结合阅读。如果有条件,读者可以在Linux操作系统上编译并运行Greenplum,通过调试工具gdb进入程序内部观察内存对象模型、函数调用栈、线程模型等。第2篇的很多章节附有函数调用栈的图片信息,读者在调试过程中可以进行对比。在阅读第2篇内容的同时,读者也可以回顾第1篇的相关章节,从而把从理论到实践,再回到理论的过程打通。这样读者就能更加深刻地理解Greenplum这个工业级分布式数据库了。第3篇介绍数据库在云计算和新技术浪潮下的机遇和挑战。

本书在对应内容的脚注里标明了参考文献,包含很多数据库领域的论文和专著。读者可以在阅读本书的同时阅读相关文献,以获取知识点的全貌。

致谢

感谢我的妻子和女儿,如果没有你们的包容和支持,我不可能完成本书。

感谢杭州拓数派科技发展有限公司的冯雷和陆公瑜,北京四维纵横数据技术有限公司的姚延栋,北京酷克数据科技有限公司的魏一,谢谢你们对本书的意见和建议。你们是中国Greenplum的先驱,现在又各自活跃在创业第一线。

感谢前Autonomic中国区总监陈开来和架构师梁博艺,谢谢你们对本书的关注,车联网、物联网和分布式数据库、时间序列数据处理关系紧密,融合性的场景和领域会越来越多。

感谢前Pivotal同事陈淼,我们长时间的合作和讨论,对本书的创作、若干相关项目的开发和成形产生了积极影响。

最后感谢郭媛编辑的大力支持,谢谢你耐心的指导和审核。

王凤刚

2024年7月

资源与支持

资源获取

本书提供如下资源:

源码;

本书思维导图;

异步社区7天VIP会员。

要获得以上资源,您可以扫描下方二维码,根据指引领取。

提交勘误信息

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区(https://www.epubit.com),按书名搜索,进入本书页面,单击“发表勘误”,输入错误信息,单击“提交勘误”按钮即可(见下页图)。本书的作者和编辑会对您提交的错误信息进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。

如果您所在的学校、培训机构或企业想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接通过邮件发送给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

异步社区”是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作译者与读者在线交流互动,以及传统出版与数字出版的融合发展。

异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域30余年的发展与积淀。异步图书面向IT行业以及各行业中使用IT技术的用户。

第1章 云计算时代的数据库

1.1 数据库的历史和发展

数据库管理系统已经经历了半个多世纪的发展,单机版本的数据库越来越健壮,功能越来越丰富。云计算和分布式技术流行以后,包括数据库在内的传统信息技术(information technology,IT)基础系统开始发生变革。

图1-1根据中国信息通信研究院发布的《数据库发展研究报告(2021年)》中数据库发展历程主要节点图绘制,图中对主流数据库发展的过程进行了详细标注。

图1-1 数据库发展历程

非关系型数据库(not only SQL,NoSQL)在最近十多年也有长足的发展,而且随着人们对数据库系统越来越了解,很多融合性产品被研发出来,比如时序数据库、图数据库、文档数据库、键值数据库等。

数据库作为IT基础设施后台的核心,越来越受到人们的重视。

1.2 云计算带来的挑战

传统的联机事务处理(online transaction processing,OLTP)数据库(如Oracle数据库)仍旧是银行等传统行业的后台支撑,但随着分布式技术的流行,新兴的数据分析行业迎来很多机遇,各种分析型数据库纷纷成熟起来,本书要介绍的 Greenplum 就是其中之一。Greenplum对PostgreSQL内核做了修改,用大规模并行处理(massively parallel processing,MPP)策略使数据分散到多个节点。

云计算和数据库系统的融合,最开始是在云平台上托管单机或者小规模集群的数据库,这样的融合简化了数据库系统的运维过程,把数据库系统的维护从机房转移到云平台,传统数据库变成了云数据库。随着用户需求(如数据库需要动态获取资源进行计算和分析,按照使用量计费以提高资源使用效率;用多模式多引擎的方式分析数据、基于列存储和行存储进行数据分析、用B树索引进行数据分析等)的增加,云数据库演化成了云原生数据库。数据存储和数据计算在云平台上被解耦,资源被统一分配和调度。

目前,以snowflake为代表的云原生数据库越来越被企业所接受,云原生的概念和行业标准日渐成熟。当然,技术本身也在进步,基于快速UDP 互联网连接(quick UDP internet connection,QUIC)的Http/3、非易失性存储器(non-volatile memory,NVM)存储技术、数据平面开发套件(data plane development kit,DPDK)/存储性能开发套件(storage performance development kit,SPDK)等网络技术给数据库管理系统带来了更多的挑战。

1.3 云原生数据库的主要特点

要了解云原生数据库的特点,就不得不提亚马逊云计算技术。亚马逊在 2014 年推出Aurora/RDS,然后推出了键值(key value,KV)数据库 Amazon DynamoDB、文档数据库 Amazon DocumentDB、内存数据库Amazon ElastiCache、图形数据库Amazon Neptune、时间序列数据库Amazon Timestream、宽列数据库Amazon Keyspaces、分类账数据库Amazon Quantum Ledger Database、数据仓库服务Amazon Redshift等很多数据库产品,亚马逊公司按照各类需求把数据库服务迁移到了云平台上。使用这些服务的企业很多,比如Netflix、Snapchat、Zoom、Disney、Slack、Coinbase、Samsung等。这些企业一开始使用的都是自己在机房里搭建的数据库集群,但随着亚马逊云数据库服务的日渐成熟,它们慢慢把后台服务迁移到亚马逊云平台上。Snowflake公司也没有建立自己的云平台,而是使用Amazon Web Services(AWS)、Microsoft Azure、Google Cloud Platform(GCP)的云平台搭建自己的数据分析平台。从这些案例能看出,云原生数据库随着互联网技术的日益发展会越来越流行。云原生数据库的特点如下。

性能高。DynamoDB和Aurora能在毫秒级别的时间内做出反应,GCP的Big Query也是以性能著称的。随着基础设施数据传输速度的提升、优化策略的落地,性能指标会越来越高。

可靠性高。通常,云平台公司会承诺其服务可靠性达到99.99%或者99.999%等这样的正常运行服务水平。同时,灾备系统的支持也为短时间内恢复服务提供了额外保障。类似的可靠性服务是由云平台公司提供的,客户不用进行额外投入。

资源弹性。云平台服务有按需付费的特点,成本控制清晰。比如,来自应用程序的请求变少,数据库的运行实例就会向下缩容,可以节约成本;反之会向上扩容,以保证应用的健壮性。

学习成本低。在数据分析领域,为了完成数据分析的所有步骤,数据科学家们可能需要学习Python、R等编程语言,这都会增加学习成本。云平台上整合了数据录入、预处理、数据分析等一系列的功能,数据录入后用结构查询语言(structure query language,SQL)分析数据,能降低学习成本。

相关图书

生成式AI入门与AWS实战
生成式AI入门与AWS实战
云原生Spring实战Spring Boot与?Kubernetes实践
云原生Spring实战Spring Boot与?Kubernetes实践
华为云计算实战指南
华为云计算实战指南
Amazon Web Services云计算实战(第2版)
Amazon Web Services云计算实战(第2版)
云原生技术中台:从分布式到云平台设计
云原生技术中台:从分布式到云平台设计
AWS云计算实战
AWS云计算实战

相关文章

相关课程