ClickHouse 原理解析與應用實踐

朱凱

  • 出版商: 機械工業
  • 出版日期: 2020-05-01
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 裝訂: 平裝
  • ISBN: 7111654900
  • ISBN-13: 9787111654902

立即出貨 (庫存=1)

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

商品描述

本書是一本系統介紹Clickhouse的指導型工具書,
全書總共分為11章:
第1章介紹ClickHouse的由來、發展歷程、核心特點與核心特點。
第2~6章介紹了ClickHouse基礎使用部分,包括整體架構、如何安裝、
數據定義、數據引擎、數據查詢和函數的特性和使用方法。
第7~9章介紹了ClickHouse高級特性部分,包括數據庫管理操作,
數據分片、數據副本和高可用的特性和使用方法。
第10~11章介紹瞭如果自己手動實現ClickHouse中間件的思路和示例,
同時也介紹了幾款可視化工具與ClickHouse集成的方法。

目錄大綱

推薦序一
推薦序二
推薦序三
推薦序
推薦序五
讚譽
前言
1章 ClickHouse的前世今生1
1.1 傳統BI系統之殤2
1.2 現代BI系統的新思潮2
1.3 OLAP常見架構分類4
1.4 OLAP實現技術的演進6
1.5 一匹橫空出世的黑馬7
1.5.1 天下武功唯快不破8
1.5.2 社區活躍8
1.6 ClickHouse的發展歷程8
1.6.1 順理成章的MySQL時期9
1.6.2 另闢蹊徑的Metrage時期10
1.6.3 自我突破的OLAPServer時期10
1.6.4 水到渠成的ClickHouse時代11
1.7 ClickHouse的名稱含義12
1.8 ClickHouse適用的場景12
1.9 ClickHouse不適用的場景13
1.10 有誰在使用ClickHouse13
1.11 本章小結13

2章 ClickHouse架構概述14
2.1 ClickHouse的核心特性14
2.1.1 完備的DBMS功能15
2.1.2 列式存儲與數據壓縮15
2.1.3 向量化執行引擎16
2.1.4 關係模型與SQL查詢17
2.1.5 多樣化的表引擎18
2.1.6 多線程與分佈式18
2.1.7 多主架構19
2.1.8 在線查詢19
2.1.9 數據分片與分佈式查詢 19
2.2 ClickHouse的架構設計20
2.2.1 Column與Field20
2.2.2 DataType20
2.2.3 Block與Block流21
2.2.4 Table22
2.2.5 Parser與Interpreter22
2.2.6 Functions 與Aggregate Functions22
2.2.7 Cluster與Replication23
2.3 ClickHouse為何如此之快24
2.3.1 著眼硬件,先想後做24
2.3.2 算法在前,抽像在後24
2.3.3 勇於嚐鮮,不行就換25
2.3.4 特定場景,特殊優化25
2.3.5 持續測試,持續改進25
2.4 本章小結26

3章 安裝與部署27
3.1 ClickHouse的安裝過程27
3.1.1 環境準備27
3.1.2 安裝ClickHouse28
3.2 客戶端的訪問接口31
3.2.1 CLI31
3.2.2 JDBC33
3.3 內置的實用工具35
3.3.1 clickhouse-local35
3.3.2 clickhouse-benchmark36
3.4 本章小結38

4章 數據定義39
4.1 ClickHouse的數據類型39
4.1.1 基礎類型40
4.1.2 複合類型45
4.1.3 特殊類型48
4.2 如何定義數據表49
4.2.1 數據庫49
4.2.2 數據表50
4.2.3 默認值表達式52
4.2.4 臨時表53
4.2.5 分區表54
4.2.6 視圖55
4.3 數據表的基本作56
4.3.1 追加新字段56
4.3.2 修改數據類型56
4.3.3 修改備註56
4.3.4 刪除已有字段57
4.3.5 移動數據表57
4.3.6 清空數據表58
4.4 數據分區的基本作58
4.4.1 查詢分區信息58
4.4.2 刪除指定分區58
4.4.3 複製分區數據59
4.4.4 重置分區數據60
4.4.5 卸載與裝載分區60
4.4.6 備份與還原分區61
4.5 分佈式DDL執行61
4.6 數據的寫入61
4.7 數據的刪除與修改63
4.8 本章小結64

5章 數據字典65
5.1 內置字典65
5.1.1 內置字典配置說明65
5.1.2 使用內置字典67
5.2 外部擴展字典67
5.2.1 準備字典數據67
5.2.2 擴展字典配置文件的元素組成68
5.2.3 擴展字典的數據結構69
5.2.4 擴展字典的類型71
5.2.5 擴展字典的數據源79
5.2.6 擴展字典的數據更新策略84
5.2.7 擴展字典的基本作85
5.3 本章小結87

6章 MergeTree原理解析88
6.1 MergeTree的創建方式與存儲結構89
6.1.1 MergeTree的創建方式89
6.1.2 MergeTree的存儲結構91
6.2 數據分區93
6.2.1 數據的分區規則93
6.2.2 分區目錄的命名規則94
6.2.3 分區目錄的合併過程95
6.3 一級索引98
6.3.1 稀疏索引98
6.3.2 索引粒度99
6.3.3 索引數據的生成規則99
6.3.4 索引的查詢過程101
6.4 二級索引102
6.4.1 granularity與inde_granularity的關係104
6.4.2 跳數索引的類型105
6.5 數據存儲106
6.5.1 各列獨立存儲106
6.5.2 壓縮數據塊106
6.6 數據標記109
6.6.1 數據標記的生成規則109
6.6.2 數據標記的工作方式110
6.7 對於分區、索引、標記和壓縮數據的協同總結113
6.7.1 寫入過程113
6.7.2 查詢過程114
6.7.3 數據標記與壓縮數據塊的對應關係114
6.8 本章小結116

7章 MergeTree系列表引擎117
7.1 MergeTree117
7.1.1 數據TTL117
7.1.2 多路徑存儲策略121
7.2 ReplacingMergeTree128
7.3 SummingMergeTree130
7.4 AggregatingMergeTree134
7.5 CollapsingMergeTree137
7.6 VersionedCollapsingMergeTree140
7.7 各種MergeTree之間的關係總結141
7.7.1 繼承關係141
7.7.2 組合關係143
7.8 本章小結144

8章 其他常見類型表引擎145
8.1 外部存儲類型145
8.1.1 HDFS145
8.1.2 MySQL149
8.1.3 JDBC150
8.1.4 Kafka152
8.1.5 File157
8.2 內存類型158
8.2.1 Memory159
8.2.2 Set159
8.2.3 Join160
8.2.4 Buffer162
8.3 日誌類型164
8.3.1 TinyLog164
8.3.2 StripeLog165
8.3.3 Log166
8.4 接口類型167
8.4.1 Merge167
8.4.2 Dictionary168
8.4.3 Distributed169
8.5 其他類型170
8.5.1 Live View170
8.5.2 Null171
8.5.3 URL171
8.6 本章小結173

9章 數據查詢174
9.1 WITH子句175
9.2 FROM子句177
9.3 SAMPLE子句178
9.4 ARRAY JOIN子句180
9.5 JOIN子句183
9.5.1 連接精度184
9.5.2 連接類型186
9.5.3 多表連接189
9.5.4 注意事項190
9.6 WHERE與PREWHERE子句190
9.7 GROUP BY子句193
9.7.1 WITH ROLLUP194
9.7.2 WITH CUBE194
9.7.3 WITH TOTALS195
9.8 HAVING子句195
9.9 ORDER BY子句197
9.10 LIMIT BY子句198
9.11 LIMIT子句199
9.12 SELECT子句200
9.13 DISTINCT子句200
9.14 UNION ALL子句202
9.15 查看SQL執行計劃203
9.16 本章小結207

10章 副本與分片208
10.1 概述208
10.2 數據副本209
10.2.1 副本的特點212
10.2.2 ZooKeeper的配置方式212
10.2.3 副本的定義形式213
10.3 ReplicatedMergeTree原理解析214
10.3.1 數據結構215
10.3.2 副本協同的核心流程217
10.4 數據分片228
10.4.1 集的配置方式228
10.4.2 基於集實現分佈式DDL232
10.5 Distributed原理解析236
10.5.1 定義形式236
10.5.2 查詢的分類237
10.5.3 分片規則238
10.5.4 分佈式寫入的核心流程239
10.5.5 分佈式查詢的核心流程245
10.6 本章小結251

11章 管理與運維252
11.1 用戶配置252
11.1.1 用戶profile252
11.1.2 配置約束253
11.1.3 用戶定義254
11.2 權限管理257
11.2.1 訪問權限257
11.2.2 查詢權限258
11.2.3 數據行級權限259
11.3 熔斷機制261
11.4 數據備份263
11.4.1 導出文件備份263
11.4.2 通過快照表備份264
11.4.3 按分區備份264
11.5 服務監控265
11.5.1 系統表266
11.5.2 查詢日誌267
11.6 本章小結270