Hive是大数据领域的一个重要开发工具。本书基于Hive3.1.3版本进行编写,首先,简单介绍了Hive的起源和发展,以及Hive的安装和部署;其次,分别介绍了Hive的数据定义语言、数据操作语言、查询语言,以及各种函数,其中穿插安排了大量的综合案例练习;再次,讲解了分区表和分桶表,以及文件的压缩;最后,重点讲解了Hive在使用不同执行引擎时的企业级性能调优手段。本书广泛适用于大数据的学习者和从业人员、Hive初学者,以及高等院校大数据相关专业的学生,同时可作为大数据学习的必备书籍。
尚硅谷教育是一家专业的IT教育培训机构,开设了JavaEE、大数据、HTML5前端等多门学科,在互联网上发布的JavaEE、大数据、HTML5前端、区块链、C语言、Python等技术视频教程广受赞誉。
第1章 Hive入门 1
1.1 什么是Hadoop 1
1.2 什么是Hive 4
1.3 Hive的架构 4
1.4 学前导读 7
1.4.1 学习的基本要求 7
1.4.2 环境准备 7
1.5 本章总结 8
第2章 Hive的安装部署 9
2.1 Hive的安装 9
2.1.1 Hive初体验 9
2.1.2 MySQL的安装和元数据配置 12
2.1.3 Hive的服务部署 16
2.2 Hive的使用技巧 24
2.2.1 常用交互命令 24
2.2.2 参数配置方式 25
2.2.3 常见属性配置 25
2.3 本章总结 27
第3章 数据定义语言 28
3.1 数据库的定义 28
3.2 表的定义 30
3.2.1 创建表 30
3.2.2 表的其他定义语言 34
3.3 本章总结 35
第4章 数据操作语言 36
4.1 数据加载 36
4.2 数据插入 37
4.2.1 将查询结果插入表中 37
4.2.2 将给定values插入表中 37
4.2.3 将查询结果写入目标路径 38
4.3 数据的导出和导入 38
4.4 本章总结 38
第5章 查询 39
5.1 数据准备 39
5.2 基本查询 40
5.2.1 select子句——全表和特定列查询 40
5.2.2 列别名 42
5.2.3 limit子句 42
5.2.4 order by子句 43
5.2.5 where子句 46
5.2.6 关系运算符 47
5.2.7 逻辑运算符 49
5.2.8 算术运算符 51
5.3 分组聚合 52
5.3.1 聚合函数 52
5.3.2 group by子句 56
5.3.3 having子句 59
5.4 join连接 62
5.4.1 join连接语法的简介与表别名 62
5.4.2 数据准备 65
5.4.3 连接分类 66
5.4.4 多表连接 71
5.4.5 笛卡儿积连接 73
5.4.6 join连接与MapReduce程序 74
5.4.7 联合(union&union all) 75
5.5 本章总结 77
第6章 综合案例练习之基础查询 78
6.1 环境准备 78
6.2 简单查询练习 80
6.3 汇总与分组练习 84
6.3.1 汇总练习 84
6.3.2 分组练习 85
6.3.3 对分组结果的条件查询 87
6.3.4 查询结果排序和分组指定条件 90
6.4 复杂查询练习 94
6.5 多表查询练习 97
6.5.1 表连接 97
6.5.2 多表连接 102
6.6 本章总结 117
第7章 初级函数 118
7.1 函数简介 118
7.2 单行函数 119
7.2.1 数值函数 119
7.2.2 字符串函数 121
7.2.3 日期函数 126
7.2.4 流程控制函数 129
7.2.5 集合函数 131
7.2.6 案例演示 133
7.3 高级聚合函数 140
7.4 本章总结 142
第8章 综合案例练习之初级函数 143
8.1 环境准备 143
8.1.1 用户信息表 143
8.1.2 商品信息表 144
8.1.3 商品品类信息表 145
8.1.4 订单信息表 145
8.1.5 订单明细表 147
8.1.6 用户登录明细表 150
8.1.7 商品价格变更明细表 151
8.1.8 配送信息表 152
8.1.9 好友关系表 153
8.1.10 收藏信息表 155
8.2 初级函数练习 156
8.2.1 筛选2021年总销量低于100件的商品 156
8.2.2 查询每日新增用户数 158
8.2.3 用户注册、登录、下单综合统计 160
8.2.4 向用户推荐好友收藏的商品 163
8.2.5 男性和女性用户每日订单总金额统计 166
8.2.6 购买过商品1和商品2但没有购买过商品3的用户统计 168
8.2.7 每日商品1和商品2的销量差值统计 169
8.2.8 根据商品销售情况进行商品分类 170
8.2.9 查询有新增用户的日期的新增用户数和新增用户1日留存率 172
8.2.10 登录次数及交易次数统计 174
8.2.11 统计每个商品各年度销售总金额 177
8.2.12 某周内每个商品的每日销售情况 178
8.2.13 形成同期商品售卖分析表 180
8.2.14 国庆节期间每个商品的总收藏量和总购买量统计 181
8.2.15 国庆节期间各品类商品的7日动销率和滞销率 183
8.3 本章总结 186
第9章 高级函数 187
9.1 表生成函数 187
9.1.1 常用UDTF 187
9.1.2 案例演示 190
9.2 窗口函数 192
9.2.1 语法讲解 192
9.2.2 常用窗口函数 197
9.2.3 案例演示 200
9.3 用户自定义函数 208
9.3.1 概述 208
9.3.2 自定义UDF函数案例 209
9.4 本章总结 211
第10章 综合案例练习之高级函数 212
10.1 高级函数练习题 212
10.1.1 查询各品类销售商品的种类数及销量最高的商品 212
10.1.2 查询首次下单后第二日连续下单的用户比率 215
10.1.3 每件商品销售首年的年份、销售数量和销售总金额 218
10.1.4 查询所有用户连续登录2日及以上的日期区间 220
10.1.5 订单金额趋势分析 223
10.1.6 查询每名用户登录日期的最大空档期 225
10.1.7 查询同一时间多地登录的用户 227
10.1.8 销售总金额完成任务指标的商品 230
10.1.9 各品类中商品价格的中位数 232
10.1.10 求商品连续售卖的时间区间 234
10.1.11 根据活跃间隔对用户进行分级的结果统计 237
10.2 面试真题 239
10.2.1 同时在线人数问题 239
10.2.2 会话划分问题 242
10.2.3 间断连续登录用户问题 247
10.2.4 日期交叉问题 251
10.3 本章总结 255
第11章 分区表和分桶表 256
11.1 分区表 256
11.1.1 分区表基本语法 256
11.1.2 二级分区表 258
11.1.3 动态分区 259
11.2 分桶表 260
11.2.1 分桶表基本语法 260
11.2.2 分桶排序表 261
11.3 本章总结 262
第12章 文件格式和压缩 263
12.1 文件格式 263
12.1.1 Text Flile 263
12.1.2 ORC 263
12.1.3 Parquet 265
12.2 压缩 266
12.2.1 压缩算法概述 266
12.2.2 Hive表数据进行压缩 267
12.2.3 计算过程中使用压缩 267
12.3 本章总结 268
第13章 MapReduce引擎下的企业级性能调优 269
13.1 测试数据准备 269
13.1.1 订单表(2000万条数据) 269
13.1.2 支付表(600万条数据) 270
13.1.3 商品信息表(100万条数据) 271
13.1.4 省(区、市)信息表(34条数据) 271
13.2 计算资源配置调优 272
13.2.1 YARN资源配置调优 272
13.2.2 MapReduce资源配置调优 273
13.3 使用Explain命令查看执行计划 274
13.3.1 基本语法 274
13.3.2 案例实操 274
13.3.3 执行计划分析 278
13.4 分组聚合 281
13.4.1 优化说明 281
13.4.2 优化案例 282
13.5 Join优化 284
13.5.1 Join算法概述 284
13.5.2 Map Join 287
13.5.3 Bucket Map Join 294
13.5.4 Sort Merge Bucket Map Join 297
13.6 数据倾斜 300
13.6.1 数据倾斜概述 300
13.6.2 分组聚合导致的数据倾斜 300
13.6.3 join连接导致的数据倾斜 303
13.7 任务并行度 308
13.7.1 优化说明 308
13.7.2 优化案例 309
13.8 小文件合并 310
13.8.1 优化说明 310
13.8.2 优化案例 311
13.9 其他性能优化手段 312
13.9.1 CBO优化 312
13.9.2 谓词下推 313
13.9.3 矢量化查询 314
13.9.4 Fetch抓取 315
13.9.5 本地模式 315
13.9.6 并行执行 315
13.9.7 严格模式 316
13.10 本章总结 316
第14章 Hive On Tez的企业级性能调优 317
14.1 初识Hive On Tez 317
14.1.1 Tez 概述 317
14.1.2 Hive On Tez部署 318
14.2 计算资源配置 322
14.3 执行计划与统计信息 323
14.3.1 执行计划 323
14.3.2 统计信息 326
14.4 任务并行度 327
14.4.1 优化说明 327
14.4.2 Reducer并行度优化案例 329
14.5 分组聚合 330
14.6 Join 330
14.6.1 Join算法 330
14.6.2 Hive On Tez中Join算法的实现 334
14.6.3 Hive On Tez中Join算法的选择策略 337
14.6.4 优化案例 338
14.7 小文件合并 341
14.7.1 优化说明 341
14.7.2 优化案例 342
14.8 数据倾斜 343
14.9 本章总结 344
第15章 Hive On Spark的企业级性能调优 345
15.1 Hive On Spark概述 345
15.1.1 什么是Spark 345
15.1.2 Spark的基本架构 346
15.1.3 Hive On Spark的安装部署 347
15.2 Spark资源配置 349
15.2.1 Excutor配置说明 349
15.2.2 Driver配置说明 351
15.2.3 Spark配置实操 351
15.3 使用Explain命令查看执行计划 352
15.4 分组聚合优化 355
15.5 Join优化 356
15.6 数据倾斜优化 356
15.7 计算引擎总结 356
15.8 本章总结 358