首页>参考读物>计算机科学与技术>数据库

ClickHouse性能之巅:从架构设计解读性能之谜
作者 : 陈峰 著
丛书名 : 数据库技术丛书
出版日期 : 2022-11-24
ISBN : 978-7-111-71658-7
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 256
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

这是一本通过分析ClickHouse底层引擎架构来解读ClickHouse极--致性能的底层逻辑的著作,同时还总结了ClickHouse在各种适用场景中的使用技巧和性能调优方法,让读者知其然,也能知其所以然。
全书一共12章,分为两个部分:
第1部分 架构篇(第1-7章)
简要地介绍了数据仓库的核心技术和思路,系统讲解了ClickHouse的查询性能优势、适用场景、架构设计和运作过程,深入地剖析了ClickHouse的存储引擎架构、计算引擎架构以及决定ClickHouse性能的关键因素,还将ClickHouse与其他数仓架构进行了深度对比,不仅阐明了ClickHouse查询速度快的底层逻辑,也推导出了ClickHouse的适用场景。
第2部分 实战篇(第8-12章)
针对ClickHouse的适用场景,讲解了它的各种使用技巧以及存算分离架构、分布式架构等云计算时代的全新架构,更重要的是,从数据结构、内存、磁盘、网络、CPU、查询等方面全面总结了ClickHouse的性能优化方法和原则。

图书特色

滴普科技首席架构师撰写,多年ClickHouse实践和研究总结
剖析ClickHouse架构设计,揭秘其极致查询性能的底层逻辑;
针对ClickHouse适用场景,总结其调优方法论

上架指导

计算机\数据库\数据仓库

封底文字

杨 磊
滴普科技联合创始人、PSST体系总裁
本书从ClickHouse的架构开始分析,介绍ClickHouse引以为傲的极致单机性能设计,带领读者进入ClickHouse的内核,剖析其精妙设计,帮助读者快速了解关键代码和对应的设计思路。

高新刚
京东云数据库研发负责人 
本书从架构和实战两个核心层面详细解读ClickHouse性能之谜,具有很高的指导意义,针对不同的业务场景,为业务的数字化建设提供了专业的指引。

吕海波
美创科技技术研究院数据库内核专家
本书从架构层面为我们提炼出ClickHouse之“利”在何处,让我们可以更好地掌握ClickHouse的优点,同时也了解ClickHouse的不足,在此之上,本书更进一步,为读者归纳出架构的方法论。

郭炜
ClickHouse 中国社区创始人
Apache Software Foundation Member
本书深入浅出地讲解了ClickHouse的架构、实战、技巧,不仅能帮助读者稳定、高效地使用ClickHouse引擎解决常见业务问题,还能了解它的核心设计思路和常见场景的性能优化方法。

作者简介

陈峰 著:陈峰
资深大数据专家和架构师,ClickHouse技术专家,滴普科技(2B领域独角兽)合伙人兼首席架构师,从0到1地建设了首支滴普科技的数据中台技术团队,构建了滴普科技的数据技术体系。
有多年的大数据架构经验,作者曾担任百丽数据中台丽影洞察项目的大数据架构师,将ClickHouse成功引入百丽。
曾在中国数据库技术大会(Database Technology Conference China,DTCC)等多个会议上发表ClickHouse主题演讲,对ClickHouse有非常深入的研究,实践经验丰富。
积极参与ClickHouse社区活动,积极推广ClickHouse。在多个项目中应用ClickHouse技术,将ClickHouse的强大能力推广到企业中,同时积极地向ClickHouse社区贡献代码和开源工具。
滴普科技
北京滴普科技有限公司成立于2018年,定位为数据智能服务商。公司以数据智能技术为基础,为客户提供数据智能领域的大数据基础软件产品,及以数据为核心的业务价值创新服务。
核心产品为实时湖仓平台FastData,全面整合了从数据源、数据分析到数据价值实现的完整链路,帮助企业建立统一治理、流批一体、湖仓一体的云原生数据智能平台。同时,还构建了FastData Cloud云服务产品体系,以云原生部署、弹性计费的商业模式,帮助客户提供按需组合式数据工具搭建,并运营DEEPNOVA开发者社区,聚焦数据架构领域,与开发者共同探讨核心基础设施平台能力的技术发展趋势。
目前,滴普科技已成功服务200余家大中型企业,推动各行业的数据基础设施建设。

图书目录

《ClickHouse性能之巅:从架构设计解读性能之谜》目录
前言
为何写作本书
本书主要内容
本书读者对象
本书内容特色
如何阅读本书
资源和勘误
致谢
第一部分:背景
第0章 大数据数仓库的核心技术
1.1 OLAP数仓和OLTP事务性数据库的本质区别
1.2 典型大数据数仓技术及其核心思路
1.2.1 Hive
1.2.2 HBase
1.2.3 Kylin
1.3 传统数仓的缺陷
1.3.1 效率低
1.3.2 延迟高
1.3.3 数据膨胀
1.4 ClickHouse的查询性能优势
1.4.1 列存储与向量计算并行
1.4.2 数据压缩空间大,减少I/O
1.4.3 基于LSM技术的稀疏索引,提高IO效率
1.4.4

第二部分:架构
第1章ClickHouse简介
a)ClickHouse的标签
i.单机处理能力强
ii.查询速度快
b)ClickHouse适用的场景
第2章 ClickHouse架构概览
2.1 ClickHouse架构简介
2.2 ClickHouse的核心抽象
2.2.1 列和字段
2.2.2 数据类型
2.2.3 Block和Block Stream
2.2.4 表和表引擎
2.2.5 函数
2.2.6 数据库引擎
2.3 本章小结
第3章 ClickHouse的存储引擎架构
3.1 ClickHouse存储引擎的整体架构与设计思想
3.1.1 整体架构
3.1.2 设计思想
3.1.2.1 三级文件组织原则
3.1.2.2 不可变原则
3.1.2.3 密集堆放原则
3.2ClickHouse的数据组织
3.2.1 块
3.2.2 不同数据类型数据堆放方式
3.2.2.1 定长数据类型的堆放方式
3.2.2.2 变长数据类型的堆放方式
3.2.3 数据压缩方式
3.3 ClickHouse的文件组织
3.3.1 Bin、索引和标记文件
3.3.2 分区
3.3.3 数据库和表
3.3.4 元数据文件
3.4 跳数索引
3.5 与其他数据库存储引擎的对比
3.6 从存储引擎的设计来看为何ClickHouse这么快
3.7 ClickHouse的存储引擎的工作过程
3.7.1 库、表创建过程
3.7.2 数据插入过程
3.7.3 分区合并和删除过程
3.7.4 数据读取过程

第4章 ClickHouse的计算引擎架构
4.1 ClickHouse计算引擎的整体架构与设计思想
4.1.1 整体架构
4.1.2 设计思想
4.2 ClickHouse的SQL解析过程
4.3 ClickHouse的优化器实现及其优缺点
4.4 SIMD技术的加持
4.5 与其他数据库计算引擎的对比及异同
4.6 从计算引擎的角度来看为何ClickHouse这么快

第5章 ClickHouse与其他数仓的架构对比
5.1 ClickHouse与Hive的对比
5.1.1 Hive的数据组织
5.1.1.1 textfile
5.1.1.2 SEQUENCEFILE
5.1.1.3 orc
5.1.1.4 parquet
5.1.2 Hive的存储系统
主要介绍HDFS如何拖慢hive的速度的。
5.1.3 SparkSQL与ClickHouse计算引擎的差异
5.1.3.1 SQL解析过程不同
5.1.3.2 优化器的不同
5.1.3.3 SparkSQL的AQE(从物理计划角度来看)
5.1.4 ClickHouse比Hive快的原因缺陷
5.1.4.1 严格数据组织更适合做分析
5.1.4.2 没有Shuffle过程
5.1.4.3 HDFS的性能瓶颈
5.1.5 本章小结(ClickHouse的不足)
5.2 ClickHouse与hbase的对比
5.2.1 HBase的数据模型
5.2.1.1 Key-Value模型
5.2.1.2 与ClickHouse的区别
5.2.2 HBase的存储系统与ClickHouse的异同
5.2.2.1 都使用了LSM来保证数据有序
5.2.2.2 HBase使用了HDFS实现大数据
5.2.3 HBase的适用场景及ClickHouse不适合的原因
5.2.3.1 海量明细数据的随机实时查询(点查)
5.2.3.2 ClickHouse无法应对点查的原因
5.3.3 本章小结(数据模型的不同导致的ClickHouse和HBase的应用场景的不同)
5.3 ClickHouse与kylin的对比
5.3.1 Kylin的架构
5.3.2 Kylin解决性能问题的思路
5.3.3 Kylin方案的缺陷
5.4 本章小结(介绍各大数仓几乎都是从分布式架构的基础上解决某个问题从而构建的面向不同场景的数仓)
第6章 深度思考:决定外在能力的因素是什么?
6.1 结构决定功能
概述
6.2 从数仓架构的演变来理解以上结论
6.2.1 结构决定能力的上限
6.2.1.1 例子:列存+压缩决定了IO时间的降低,间接决定了查询的上限,对比ClickHouse和Hive的TextFile
6.2.1.2 例子:列存决定了宽表查询速度的上限
6.2.2 结构决定应用层算法从而影响功能
6.2.2.1 例子:列存+数据有序存储决定了计算引擎可以通过向量计算加速
6.2.2.2 例子:有序存储决定了索引算法
6.3 本章小结
第三部分:实战
第7章 ClickHouse使用技巧
7.1 数据导入导出技巧
7.1.1 外部文件导入导出技巧
7.1.1.1 CSV、TSV文件导入建议
7.1.1.2 INTO OUTFILE语句导出技巧
7.1.2 灵活使用集成表引擎导入导出数据
7.2 建表技巧
7.2.1 表引擎选择技巧(什么样的场景使用什么样的引擎)
7.2.2 分区键选择技巧(最左原则)
7.2.3 数据结构选择技巧
7.2.4 分区技巧
7.3 高级技巧
7.3.1 物化视图
7.3.2 投影
7.3.3 Bitmap
7.3.4 实时CDC
7.4 与现有大数据组件融合
7.4.1 与Hadoop结合实现冷热分离
7.4.2 与Flink融合实现实时数仓
7.5 常见报错及处理方法
7.5.1 too many parts
7.5.2 memory limit
第8章 ClickHouse实现用户画像系统
8.1 用户画像概述
8.1.1 用户画像系统介绍
8.1.2 用户画像系统的常规能力
8.1.3 用户画像系统的常用架构
8.2 用户画像系统的实现步骤
8.2.1 技术选型
8.2.2 数据准备阶段
8.2.2.1 业务数据接入(包含代码实现)
8.2.2.2 数据清洗(包含代码实现)
8.2.3 在线服务阶段
8.2.3.1 用户画像查询(包含代码实现)
8.2.3.2 人群圈选 (包含代码实现)
8.3 基于ClickHouse的用户画像系统的优点
8.3.1 简单,开发成本低,开发周期快
8.3.2 查询速度快,标签实时性强
8.3.3 标签定义灵活,标签定义的修改可以实时完成
8.3.4 运维成本低,架构灵活,可以灵活地和hadoop、flink等配合
第9章 ClickHouse的存算分离架构
9.1 存算分离架构背景
9.1.1 概述
9.1.2 存算分离的典型架构
9.1.3 存算分离解决的问题和适用的场景
9.1.4 存算分离的本质
9.2 ClickHouse中的存算分离
9.2.1 历史
9.2.2 功能
9.2.2.1 将S3作为存储后端
9.2.2.2 基于文件存储引擎的分布式INSERT/SELECT
9.2.2.3 基于S3的MergeTree引擎
9.3 存算分离架构对ClickHouse带来的优势
9.3.1 更低的云上成本
9.3.2 大幅提升单机容量
9.3.3 降低ClickHouse分布式管理运维难度
第10章 ClickHouse的分布式架构
10.1 ClickHouse分布式架构的概述
10.2 Zookeeper和ClickHouse-keeper的对比及使用技巧
10.3 使用chproxy实现代理
10.4 分布式表和复制表的使用技巧
第11章 ClickHouse性能优化
11.1 性能优化原则
11.2 数据结构优化
11.3 内存优化
11.4 磁盘优化
11.5 网络优化
11.6 CPU优化
11.7 查询优化

教学资源推荐
作者: 何玉洁 张俊超
作者: (美)Hector Garcia-Molina, Jeffrey D.Ullman, Jennifer Widom
作者: Nello Cristianini John Shawe-Taylor
作者: 何宁 黄文斌 熊建强
参考读物推荐
作者: (美)Craig Shallahamer 著
作者: Michael J.Corey
作者: 刘 辉
作者: Kevin Loney等著