【为何写作本书】
在参与了Apache Doris与Yandex ClickHouse的项目实践后,我深刻认识到了Doris极简架构的优点。相较于ClickHouse,Doris有以下几方面优势。
Doris依赖FE节点管理元数据,可用性高,不依赖外部组件;ClickHouse依赖ZooKeeper管理元数据,容易出现数据不同步的情况。
Doris按照“Bucket+副本”来分布数据,灵活度更高;ClickHouse只支持全节点分布数据或者每个节点分布一份数据,灵活度不高。
在多表关联上,ClickHouse仅完整支持Broadcast Join、Colocate Join,并未实现完整意义上的Shuffle Join;Doris支持Shuffle Join和Bucket Shuffle Join,可以满足更多的Join场景需求。
ClickHouse的函数、字段类型、字段名严格区分大小写,为开发增加了难度;Doris语法完全兼容MySQL,对大小写不敏感,开发简单。
ClickHouse集群分布式表的创建和删除都需要分别操作本地表和分布式表引擎,比较麻烦;Doris默认创建分布式表,建表过程和MySQL的建表过程一致,只是建表语句多一些分布式参数。
ClickHouse物理表中数据的删除和更新是异步执行的,命令执行完以后数据的清理时间不确定,对开发人员非常不友好;Doris支持按照Key字段删除和更新数据,执行完SQL命令后数据即时更新。
目前,Apache Doris已经进入开源的第六年,并于2022年6月成功从Apache孵化器“毕业”,成为Apache顶级项目。据公开资料显示,Apache Doris在美团、小米、京东、百度、网易、字节跳动、快手、腾讯、华为、新浪、知乎、360等大型互联网企业有深入的应用和稳定的生产运行,全球范围内的企业用户规模已超过1000家。
同时,飞轮数据科技(SelectDB)提供了基于开源Doris的云原生实时数据仓库SelectDB Cloud,百度智能云、腾讯云、阿里云、火山引擎等知名云厂商也提供了基于开源Doris的云上托管服务。无论私有化部署,还是云化服务,Apache Doris吸引了越来越多的用户和开发者的关注。
但是截至目前,Apache Doris的学习资料主要依靠社区的技术分享和官方文档(https://doris.apache.org),很少有系统化介绍Doris使用的书籍。作为Doris的早期用户和企业数据仓库架构师,我觉得我有义务为Doris的推广做出一点贡献。所以,我结合数据仓库开发和系统运维过程中积累的一些实战经验,编辑成书,分享给各位读者。与此同时,我也希望将这款优秀的开源软件介绍给更多的朋友,相信Doris一定可以给更多的企业带来价值,帮助企业在数字化转型之路上走得更轻松。
【本书主要内容】
这是一本全方位介绍Doris数据库的技术书,主要内容分为四部分。
第一部分 基础(第1~4章):介绍Doris数据库的入门知识,以及编译、安装、建表等基础操作。
第二部分 进阶(第5~7章):包括数据导入、数据查询和查询优化,内容层层递进。
第三部分 拓展(第8~10章):结合目前流行的Flink框架和各种常用外部表,拓展Doris的应用场景。
第四部分 实战(第11~14章):从具体应用角度介绍了离线数据仓库和实时数据仓库搭建的痛点和难点,结合Doris实现离线数据仓库和实时数据仓库搭建项目。
【读者对象】
本书适合以下读者阅读。
大数据架构师。
数据仓库工程师。
数据平台研发工程师。
计算机专业的高校学生。
【内容特色】
本书全面、翔实地介绍了Doris数据库架构设计、安装、常用操作和运维管理,并结合数据仓库的应用场景分享了两个项目实战,帮助读者更好地使用Doris。本书的特点在于实战性强,并配有丰富的案例和图片,能帮助读者更好地理解Doris原理和应用Doris数据库进行
开发。