《Doris实时数仓实战》王春波 | PDF下载|ePub下载
Doris实时数仓实战 版权信息
- 出版社:机械工业出版社
- 出版时间:2023-05-01
- ISBN:9787111726319
- 条形码:9787111726319 ; 978-7-111-72631-9
Doris实时数仓实战 本书特色
适读人群 :大数据工程师和数据库工程师1.作者是有10余年工作经验的架构师和大数据专家,在MMP领域有丰富经验,是Apache Doris项目的贡献者。 2.Apache Doris PMC主席、3位Apache Doris PMC成员、Select DB创始人以及腾讯、小米、京东的多位专家力荐。 3.从基本操作、架构设计、进阶使用、运维管理、拓展应用、项目实战等多个维度全面讲解Doris。 4.书中包含大量图表,能帮助读者轻松阅读和理解;书中有大量和案例和2个综合案例,能让读者快速获得项目实战能力。
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实现离线数据仓库和实时数据仓库。
Doris实时数仓实战 目录
Contents 目 录
推荐序一
推荐序二
前 言
**部分 基础
第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 进入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
第二部分 进阶
第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
Doris实时数仓实战 作者简介
王春波 资深架构师和大数据技术专家,曾任上海启高信息科技有限公司大数据架构师,现就职于一家互联网公司,任高级数仓工程师,负责电商数仓项目。 具有10余年的数据仓库开发经验,对主流大数据技术、产品与解决方案都有深入研究,尤其擅长用优雅的SQL实现复杂的逻辑。 交付达人,常年奔波在各个项目交付现场,曾成功主导过中国邮政银行、南海农商银行、顺德农商银行、广东省联社、广东南粤银行等多家银行和卡宾、安踏、特步等多家零售鞋服企业的数据仓库项目。 公众号“数据中台研习社”运营者,Apache Doris和Greenplum贡献者,《高效使用Greenplum:入门、进阶与数据中台》作者。