ClickHouse 性能之巔從架構設計解讀性能之謎

陳峰

買這商品的人也買了...

相關主題

商品描述

這是一本通過分析ClickHouse底層引擎架構來解讀ClickHouse極--致性能的底層邏輯的著作,
同時還總結了ClickHouse在各種適用場景中的使用技巧和性能調優方法,讓讀者知其然,也能知其所以然。
全書一共12章,分為兩個部分:
第1部分 架構篇(第1-7章)
簡要地介紹了數據倉庫的核心技術和思路,系統講解了ClickHouse的查詢性能優勢、適用場景、架構設計和運作過程,
深入地剖析了ClickHouse的存儲引擎架構、計算引擎架構以及決定ClickHouse性能的關鍵因素,
還將ClickHouse與其他數倉架構進行了深度對比,
不僅闡明了ClickHouse查詢速度快的底層邏輯,也推導出了ClickHouse的適用場景。
第2部分 實戰篇(第8-12章)
針對ClickHouse的適用場景,講解了它的各種使用技巧以及存算分離架構、分佈式架構等雲計算時代的全新架構,
更重要的是,從數據結構、內存、磁盤、網絡、CPU、查詢等方面全面總結了ClickHouse的性能優化方法和原則。

目錄大綱

讚譽
序1
序2
自序
前言
第一部分架構篇
第1章數據倉庫的核心技術 3
1.1 OLAP和OLTP的本質區別 4
1.1.1 數據三範式 4
1.1.2 規範化的意義 6
1.1.3 規範化的局限 7
1.1.4 數倉建模的本質 7
1.1.5 OLAP和OLTP的底層數據模型 8
1.1.6 維度建模 8
1.2 典型大數據數倉技術及其核心思路10
1.2.1 Hive 10
1.2.2 HBase 11
1.2.3 Kylin 12
1.2.4 其他數倉13
1.3 傳統數倉的缺陷13
1.3.1 效率低13
1.3.2 延遲高14
1.3.3 成本高14
1.4 ClickHouse查詢性能的優勢15
1.4.1 向量化引擎15
1.4.2 高效的數據壓縮16
1.4.3 高效的I/O優化17
1.5 本章小結18
第2章ClickHouse簡介19
2.1 ClickHouse的4個標籤19
2.1.1 性能強大19
2.1.2 單機處理能力強20
2.1.3 成本低21
2.1.4 不支持事務21
2.2 ClickHouse的3個適用場景22
2.2.1 BI報表的交互式分析22
2.2.2 互聯網日誌分析22
2.2.3 廣告營銷23
2.3 本章小結24
第3章ClickHouse架構概覽25
3.1 ClickHouse架構簡介26
3.2 ClickHouse的核心抽象27
3.2.1 列和字段27
3.2.2 數據類型28
3.2.3 塊32
3.2.4 表33
3.3 ClickHouse的運作過程35
3.3.1 數據插入過程35
3.3.2 數據查詢過程35
3.3.3 數據更新和數據刪除過程36
3.4 本章小結37
第4章MergeTree存儲引擎架構39
4.1 MergeTree存儲引擎的三大特點40
4.2 MergeTree的數據組織41
4.2.1 塊41
4.2.2 數據堆放方式41
4.3 MergeTree的文件組織43
4.3.1 數據文件、元數據文件、索引文件和其他文件45
4.3.2 分區47
4.3.3 數據庫和表48
4.4 索引49
4.4.1 主鍵索引49
4.4.2 標記49
4.5 與事務數據庫存儲引擎的對比50
4.6 存儲引擎如何影響查詢速度52
4.6.1 預排序52
4.6.2 列存52
4.6.3 壓縮53
4.7 MergeTree存儲引擎的工作過程53
4.7.1 數據庫、數據表的創建過程54
4.7.2 數據插入過程54
4.7.3 分區合併和刪除過程54
4.7.4 數據讀取過程56
4.8 本章小結59
第5章ClickHouse計算引擎架構61
5.1 ClickHouse計算引擎的架構簡介與設計思想61
5.1.1 整體架構62
5.1.2 SQL解析器62
5.1.3 解釋器63
5.1.4 執行器63
5.1.5 設計思想64
5.2 火山模型65
5.2.1 火山模型概述65
5.2.2 火山模型的原理66
5.2.3 火山模型的優點與缺點67
5.3 向量化引擎67
5.3.1 向量化引擎的實現方式68
5.3.2 ClickHouse中的向量化算子69
5.3.3 向量化引擎的前提70
5.4 計算引擎如何影響查詢速度72
5.4.1 ClickHouse查詢速度快的前提72
5.4.2 ClickHouse查詢速度快的本質74
5.5 本章小結74
第6章ClickHouse與其他數倉架構的對比75
6.1 ClickHouse與Hive的對比75
6.1.1 Hive的數據文件76
6.1.2 Hive的存儲系統82
6.1.3 Hive計算引擎與ClickHouse計算引擎的差異84
6.1.4 ClickHouse比Hive查詢速度快的原因85
6.2 ClickHouse與HBase的對比86
6.2.1 HBase的數據模型86
6.2.2 HBase的存儲系統與ClickHouse的異同87
6.2.3 HBase的適用場景及ClickHouse不適合的原因87
6.3 ClickHouse與Kylin的對比88
6.3.1 Kylin的架構88
6.3.2 Kylin解決性能問題的思路88
6.3.3 Kylin方案的缺陷89
6.3.4 ClickHouse的方案89
6.4 本章小結91
第7章深度思考:決定外在能力的因素93
7.1 從架構層面分析ClickHouse 93
7.1.1 ClickHouse速度快的前提93
7.1.2 對ClickHouse的一些誤解94
7.2 結構決定功能95
7.2.1 方法論96
7.2.2 意義97
7.2.3 不要過度設計98
7.3 從ClickHouse的設計來理解99
7.3.1 結構決定能力的上限99
7.3.2 結構決定應用層算法99
7.4 本章小結100
第二部分實戰篇
第8章ClickHouse使用技巧105
8.1 數據導入、導出技巧105
8.1.1 外部文件導入、導出技巧105
8.1.2 靈活使用集成表引擎導入、導出數據109
8.2 建表技巧117
8.2.1 表引擎選擇技巧118
8.2.2 分區鍵選擇技巧120
8.2.3 數據結構選擇技巧120
8.2.4 分區技巧121
8.3 高級技巧121
8.3.1 物化視圖121
8.3.2 投影122
8.3.3 位圖122
8.3.4 變更數據捕獲123
8.4 常見報錯及處理方法123
8.5 本章小結124
第9章ClickHouse實現用戶畫像系統125
9.1 用戶畫像概述125
9.1.1 用戶畫像系統介紹125
9.1.2 用戶畫像系統的需求描述127
9.1.3 用戶畫像系統的需求分析127
9.1.4 用戶畫像系統的架構128
9.2 用戶畫像系統的關鍵技術實現129
9.2.1 技術選型129
9.2.2 分析階段130
9.2.3 運營階段136
9.3 基於ClickHouse的用戶畫像系統的優點137
9.4 本章小結139
第10章ClickHouse的存算分離架構141
10.1 存算分離架構背景141
10.1.1 相關概述141
10.1.2 存算分離的典型架構142
10.1.3 存算分離的意義143
10.1.4 存算分離的局限145
10.2 ClickHouse中的存算分離147
10.2.1 實現方式147
10.2.2 注意事項150
10.3 存算分離架構給ClickHouse帶來的優勢151
10.4 本章小結152
第11章ClickHouse的分佈式架構153
11.1 架構特點及對比153
11.1.1 ClickHouse分佈式架構的優點154
11.1.2 ClickHouse分佈式架構的缺點155
11.1.3 ClickHouse與Hadoop的分佈式架構對比156
11.2 基本概念156
11.2.1 集群157
11.2.2 副本158
11.2.3 分片159
11.3 ClickHouse的複製表引擎160
11.3.1 創建複製表160
11.3.2 複製表複製161
11.3.3 複製表查詢161
11.4 ClickHouse分佈式表引擎162
11.4.1 創建分佈式表162
11.4.2 分佈式表查詢原理163
11.4.3 分佈式表的數據寫入方案165
11.4.4 分佈式表中副本的處理方式165
11.5 本章小結166
第12章ClickHouse性能優化167
12.1 性能優化的原則167
12.2 數據結構優化168
12.3 內存優化171
12.4 磁盤優化171
12.5 網絡優化173
12.6 CPU優化173
12.7 查詢優化174
12.8 數據遷移優化176
12.9 本章小結177