Doris 實時數倉實戰

王春波

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

商品描述

這是一本從基本作、架構設計、進階使用、運維管理、拓展應用、項目實戰等多個維度全面講解Doris的著作,
是數據倉庫專家兼Doris開源項目貢獻者實戰經驗的總結,得到了Apache Doris PMC主席、
Select DB創始人兼CEO以及多位Apache Doris PMC的強烈。
通過本書,讀者不僅能零基礎快速掌握Doris的原理和使用,還能獲得搭建離線/在線實時數倉的項目實戰經驗。

全書內容從邏輯上分為四個部分:
基礎篇( 1-4章): 
先介紹了Doris的功能特點、架構設計、應用場景,
然後講解了Doris的編譯、安裝、部署、建表等基本作,以及Doris的數據對象和數據模型。
進階篇( 5-7章):
從執行原理、用法詳解、應用舉例3個維度詳細講解了Doris的數據導入、數據查詢和查詢優化,層層遞進。
拓展篇( 8-10章):
結合目前流行的Flink框架和各種常用外部表講解了Doris的拓展應用,還講解了Doris的集群管理。
實戰篇( 11-14章):
 先從具體應用的角度介紹了離線數據倉庫和實時數據倉庫搭建的痛點和難點,
然後用2個綜合項目講解瞭如何結合Doris實現離線數據倉庫和實時數據倉庫。

目錄大綱

部分基礎 
1章Doris概述3 
1.1 Doris的前世今生3 
1.1.1 Doris應需而生3 
1.1.2 Doris架構重組5 
1.1.3 Doris引擎升級6 
1.1.4 Doris擁抱開源7 
1.2 Doris的特點7 
1.2.1 簡架構7 
1.2.2 使用簡單9 
1.2.3 功能豐富11 
1.2.4 開源開放13 
1.3 Doris核心設計13 
1.3.1 存儲引擎13 
1.3.2 查詢引擎15 
1.3.3 查詢優化器17 
1.3.4 向量化執行引擎19 
1.4 Doris應用場景20 
1.5 Doris的競爭對手23 
1.5.1 Doris的“前浪” — Greenplum 24 
1.5.2 Doris的“表哥” — Kylin 24 
1.5.3 Doris的“知音” — ClickHouse 25 
1.5.4 Doris的“傷痕” — StarRocks 25 
2章Doris的安裝與部署27 
2.1 集群規劃和環境準備27 
2.1.1 環境要求27 
2.1.2 硬件要求28 
2.1.3 節點規劃28 
2.1.4 通信端口29 
2.1.5 IP地址綁定30 
2.2 Doris源碼編譯30 
2.2.1 環境準備30 
2.2.2 通過Git下載Doris源碼31 
2.2.3 拉取Docker編譯環境32 
2.2.4 啟動編譯環境32 
2.2.5 j入Docker進行編譯33 
2.2.6?編譯Broker 33 
2.3 安裝和部署34 
2.3.1?安裝前的準備35 
2.3.2?安裝FE 36 
2.3.3安裝BE 39 
2.3.4 安裝Broker 41 
2.4 數據庫訪問和常用命令41 
2.4.1訪問Doris數據庫41 
2.4.2 Doris常用命令44 
2.4.3 Doris用戶管理45 
3章Doris數據對象47 
3.1 數據類型47 
3.1.1 數值類型48 
3.1.2日期時間類型48 
3.1.3字符串類型48 
3.1.4其他擴展類型48 
3.2 OLAP表定義51 
3.2.1 列定義51 
3.2.2 鍵描述51 
3.2.3 分佈描述52 
3.2.4 鍵值對53 
3.3 分區表定義55 
3.3.1 Range分區56 
3.3.2 List分區57 
3.4 外部表定義58 
3.4.1 MySQL表引擎58 
3.4.2 Broker表引擎59 
3.4.3 Hive表引擎61 
3.4.4 Iceberg表引擎61 
3.5 表的基本作62 
3.5.1 修改表62 
3.5.2 刪除表65 
3.5.3?清空表65 
3.6 視圖66 
3.6.1創建視圖66 
3.6.2 修改視圖67 
3.6.3刪除視圖67 
3.7 函數67 
3.7.1 日期函數67 
3.7.2 正則匹配函數68 
3.7.3 BITMAP函數68 
3.7.4 JSON函數69 
3.7.5表函數70 
3.7.6窗口函數71 
4章Doris數據模型詳解73 
4.1 數據模型及原理73 
4.1.1 Duplicate模型73 
4.1.2 Aggregate模型74 
4.1.3 Unique模型75
 4.2 數據模型實戰76 
4.3 數據模型應用場景79 
4.4 表數據存儲80 
4.5 分區與分桶84 
4.6 DDL語句執行過程85 
二部分j階 
5章數據導入實戰91 
5.1 INSERT INTO 91 
5.1.1 用法詳解92 
5.1.2 應用舉例93 
5.2 Stream Load 94 
5.2.1 執行原理94 
5.2.2 用法詳解96 
5.2.3 應用舉例100 
5.3 Broker Load 102 
5.3.1 執行原理102 
5.3.2 用法詳解103 
5.3.3 應用舉例105 
5.4 Routine Load 108 
5.4.1 執行原理109 
5.4.2 用法詳解110 
5.4.3 應用舉例112 
5.5 Binlog Load 115 
5.5.1 基本原理115 
5.5.2 用法詳解116 
5.5.3 應用舉例118 
5.6 DataX 122 
5.6.1 DataX執行原理122 
5.6.2 DataX DorisWriter插件124 
5.6.3 應用舉例126 
5.7 Spark Load 129 
5.7.1 執行原理129 
5.7.2 用法詳解130 
5.7.3 應用舉例131 
6章Doris數據查詢134 
6.1 簡單查詢136 
6.1.1 簡單的SQL語法136 
6.1.2 WITH特性140 
6.1.3 IN語句和EXISTS語句143 
6.2 多表關聯145 
6.2.1 JOIN 作類型145 
6.2.2 JOIN算法實現152 
6.2.3 分佈式JOIN優化策略152 
6.3 開窗查詢155 
6.4 BITMAP 去重160 
6.5 HLL近似去重164 
6.6 GROUPING SETS多維組合165 
7章Doris查詢優化168 
7.1 執行計劃168 
7.2 查詢優化器173 
7.3 索引176 
7.4 物化視圖179 
7.5 ROLLUP 183 
7.6 向量化查詢引擎185 
7.7 查詢優化總結186 
三部分拓展 
8章Doris流數據193 
8.1 Flink簡介193 
8.2 Flink基本概念196 
8.3 Flink SQL和Table API 200 
8.4 Flink CDC技術202 
8.5 Flink Doris Connector 206 
8.5.1 插件編譯與安裝206 
8.5.2 環境配置206 
8.5.3 單表增、刪、改209 
8.5.4 多表關聯212 
8.5.5 匯總數據213 
9章Doris外部表215 
9.1 ODBC外部表215 
9.2 Hive外部表219 
9.3 ES外部表222 
9.4 Iceberg外部表225 
10章Doris集群管理227 
10.1 集群管理227 
10.1.1 數據庫管理227 
10.1.2 用戶管理228 
10.1.3 權限管理228 
10.2 集群資源管理229 
10.2.1 節點資源劃分229 
10.2.2 節點資源限制231 
10.3 集群備份和恢復232 
10.3.1 數據導出232 
10.3.2 數據備份234 
10.3.3 數據恢復236 
10.3.4 模式備份237 
10.4 集群高可用238 
10.4.1 Doris一鍵啟動238 
10.4.2 Doris自啟動239 
10.4.3 Doris升級版本242 
10.5 集群擴縮容243 
10.5.1 FE擴容243 
10.5.2 FE縮容244 
10.5.3 BE擴容244 
10.5.4 BE縮容244 
10.5.5 Broker擴縮容245 
10.6 刪除恢復245 
四部分實戰 
11章數據倉庫概述249 
11.1 數據倉庫的起源249 
11.2 數據倉庫的流行250 
11.3 數據倉庫的分佈式之路251 
11.4 MPP架構的崛起253 
11.5 數據倉庫的未來255 
11.6 概念對比256 
11.6.1 數據倉庫與數據庫256 
11.6.2 數據倉庫與大數據 技術257 
11.6.3 數據倉庫與數據中台257 
11.6.4 數據倉庫與數據湖258 
12章數據倉庫設計259 
12.1 數據倉庫架構259 
12.1.1 Inmon的企業信息 化工廠260 
12.1.2 Kimball的維度建模 數據倉庫261 
12.1.3 兩種建模方式對比261 
12.2 數據倉庫分層262 
12.2.1 作數據存儲層263 
12.2.2 數據倉庫層263 
12.2.3 應用數據層265 
12.3 實時數據倉庫的兩條 線路266 
12.4 實時數據倉庫的新 選擇269 
13章基於Doris的OLAP查詢和實時 數據倉庫實戰272 
13.1 項目背景272 
13.2 項目需求273 
13.3 技術方案實現273 
13.3.1 基於DataX的接口 數據抽取274 
13.3.2 基於Hive構建數據 倉庫275 
13.3.3 基於Doris構建數據 集市277 
13.3.4 基於Flink SQL的實時 數據流278 
13.3.5 代碼發布和作業監控280 
13.4 業務方案實現280 
13.4.1 零售流水及本期、 同期計算280 
13.4.2 有效店、同店及 渠道分析281 
13.4.3 庫存及齊碼率分析283 
13.4.4 庫銷比及率分析283 
13.5 項目總結285 
14章基於Doris的流批一體數據倉庫 
實戰287 
14.1 項目背景287 
14.2 項目需求288 
14.3 技術方案實現289 
14.3.1 批量數據同步290
14.3.2 實時數據入庫292 
14.3.3 數據倉庫分層294 
14.3.4 全增量一體化數據 加工295 
14.3.5 流批融合的實時大屏298 
14.3.6 調度任務299 
14.4 開發規範300 
14.4.1 數據對象命名規範300 
14.4.2 建表規範301 
14.4.3 字段命名規範302 
14.4.4 調度任務命名規範303 
14.5 項目交付成果303 
14.5.1 PC端報表303 
14.5.2 移動端報表305 
14.5.3 自助分析報表305 
14.6 項目總結308