劍指大數(shù)據(jù)——Hive學(xué)習(xí)精要
定 價(jià):109 元
叢書名:程序員硬核技術(shù)叢書
- 作者:尚硅谷教育
- 出版時(shí)間:2024/5/1
- ISBN:9787121477270
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:368
- 紙張:
- 版次:01
- 開本:16開
Hive是大數(shù)據(jù)領(lǐng)域的一個(gè)重要開發(fā)工具。本書基于Hive3.1.3版本進(jìn)行編寫,首先,簡(jiǎn)單介紹了Hive的起源和發(fā)展,以及Hive的安裝和部署;其次,分別介紹了Hive的數(shù)據(jù)定義語言、數(shù)據(jù)操作語言、查詢語言,以及各種函數(shù),其中穿插安排了大量的綜合案例練習(xí);再次,講解了分區(qū)表和分桶表,以及文件的壓縮;最后,重點(diǎn)講解了Hive在使用不同執(zhí)行引擎時(shí)的企業(yè)級(jí)性能調(diào)優(yōu)手段。本書廣泛適用于大數(shù)據(jù)的學(xué)習(xí)者和從業(yè)人員、Hive初學(xué)者,以及高等院校大數(shù)據(jù)相關(guān)專業(yè)的學(xué)生,同時(shí)可作為大數(shù)據(jù)學(xué)習(xí)的必備書籍。
尚硅谷教育是一家專業(yè)的IT教育培訓(xùn)機(jī)構(gòu),開設(shè)了JavaEE、大數(shù)據(jù)、HTML5前端等多門學(xué)科,在互聯(lián)網(wǎng)上發(fā)布的JavaEE、大數(shù)據(jù)、HTML5前端、區(qū)塊鏈、C語言、Python等技術(shù)視頻教程廣受贊譽(yù)。
第1章 Hive入門 1
1.1 什么是Hadoop 1
1.2 什么是Hive 4
1.3 Hive的架構(gòu) 4
1.4 學(xué)前導(dǎo)讀 7
1.4.1 學(xué)習(xí)的基本要求 7
1.4.2 環(huán)境準(zhǔn)備 7
1.5 本章總結(jié) 8
第2章 Hive的安裝部署 9
2.1 Hive的安裝 9
2.1.1 Hive初體驗(yàn) 9
2.1.2 MySQL的安裝和元數(shù)據(jù)配置 12
2.1.3 Hive的服務(wù)部署 16
2.2 Hive的使用技巧 24
2.2.1 常用交互命令 24
2.2.2 參數(shù)配置方式 25
2.2.3 常見屬性配置 25
2.3 本章總結(jié) 27
第3章 數(shù)據(jù)定義語言 28
3.1 數(shù)據(jù)庫的定義 28
3.2 表的定義 30
3.2.1 創(chuàng)建表 30
3.2.2 表的其他定義語言 34
3.3 本章總結(jié) 35
第4章 數(shù)據(jù)操作語言 36
4.1 數(shù)據(jù)加載 36
4.2 數(shù)據(jù)插入 37
4.2.1 將查詢結(jié)果插入表中 37
4.2.2 將給定values插入表中 37
4.2.3 將查詢結(jié)果寫入目標(biāo)路徑 38
4.3 數(shù)據(jù)的導(dǎo)出和導(dǎo)入 38
4.4 本章總結(jié) 38
第5章 查詢 39
5.1 數(shù)據(jù)準(zhǔn)備 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 關(guān)系運(yùn)算符 47
5.2.7 邏輯運(yùn)算符 49
5.2.8 算術(shù)運(yùn)算符 51
5.3 分組聚合 52
5.3.1 聚合函數(shù) 52
5.3.2 group by子句 56
5.3.3 having子句 59
5.4 join連接 62
5.4.1 join連接語法的簡(jiǎn)介與表別名 62
5.4.2 數(shù)據(jù)準(zhǔn)備 65
5.4.3 連接分類 66
5.4.4 多表連接 71
5.4.5 笛卡兒積連接 73
5.4.6 join連接與MapReduce程序 74
5.4.7 聯(lián)合(union&union all) 75
5.5 本章總結(jié) 77
第6章 綜合案例練習(xí)之基礎(chǔ)查詢 78
6.1 環(huán)境準(zhǔn)備 78
6.2 簡(jiǎn)單查詢練習(xí) 80
6.3 匯總與分組練習(xí) 84
6.3.1 匯總練習(xí) 84
6.3.2 分組練習(xí) 85
6.3.3 對(duì)分組結(jié)果的條件查詢 87
6.3.4 查詢結(jié)果排序和分組指定條件 90
6.4 復(fù)雜查詢練習(xí) 94
6.5 多表查詢練習(xí) 97
6.5.1 表連接 97
6.5.2 多表連接 102
6.6 本章總結(jié) 117
第7章 初級(jí)函數(shù) 118
7.1 函數(shù)簡(jiǎn)介 118
7.2 單行函數(shù) 119
7.2.1 數(shù)值函數(shù) 119
7.2.2 字符串函數(shù) 121
7.2.3 日期函數(shù) 126
7.2.4 流程控制函數(shù) 129
7.2.5 集合函數(shù) 131
7.2.6 案例演示 133
7.3 高級(jí)聚合函數(shù) 140
7.4 本章總結(jié) 142
第8章 綜合案例練習(xí)之初級(jí)函數(shù) 143
8.1 環(huán)境準(zhǔn)備 143
8.1.1 用戶信息表 143
8.1.2 商品信息表 144
8.1.3 商品品類信息表 145
8.1.4 訂單信息表 145
8.1.5 訂單明細(xì)表 147
8.1.6 用戶登錄明細(xì)表 150
8.1.7 商品價(jià)格變更明細(xì)表 151
8.1.8 配送信息表 152
8.1.9 好友關(guān)系表 153
8.1.10 收藏信息表 155
8.2 初級(jí)函數(shù)練習(xí) 156
8.2.1 篩選2021年總銷量低于100件的商品 156
8.2.2 查詢每日新增用戶數(shù) 158
8.2.3 用戶注冊(cè)、登錄、下單綜合統(tǒng)計(jì) 160
8.2.4 向用戶推薦好友收藏的商品 163
8.2.5 男性和女性用戶每日訂單總金額統(tǒng)計(jì) 166
8.2.6 購買過商品1和商品2但沒有購買過商品3的用戶統(tǒng)計(jì) 168
8.2.7 每日商品1和商品2的銷量差值統(tǒng)計(jì) 169
8.2.8 根據(jù)商品銷售情況進(jìn)行商品分類 170
8.2.9 查詢有新增用戶的日期的新增用戶數(shù)和新增用戶1日留存率 172
8.2.10 登錄次數(shù)及交易次數(shù)統(tǒng)計(jì) 174
8.2.11 統(tǒng)計(jì)每個(gè)商品各年度銷售總金額 177
8.2.12 某周內(nèi)每個(gè)商品的每日銷售情況 178
8.2.13 形成同期商品售賣分析表 180
8.2.14 國(guó)慶節(jié)期間每個(gè)商品的總收藏量和總購買量統(tǒng)計(jì) 181
8.2.15 國(guó)慶節(jié)期間各品類商品的7日動(dòng)銷率和滯銷率 183
8.3 本章總結(jié) 186
第9章 高級(jí)函數(shù) 187
9.1 表生成函數(shù) 187
9.1.1 常用UDTF 187
9.1.2 案例演示 190
9.2 窗口函數(shù) 192
9.2.1 語法講解 192
9.2.2 常用窗口函數(shù) 197
9.2.3 案例演示 200
9.3 用戶自定義函數(shù) 208
9.3.1 概述 208
9.3.2 自定義UDF函數(shù)案例 209
9.4 本章總結(jié) 211
第10章 綜合案例練習(xí)之高級(jí)函數(shù) 212
10.1 高級(jí)函數(shù)練習(xí)題 212
10.1.1 查詢各品類銷售商品的種類數(shù)及銷量最高的商品 212
10.1.2 查詢首次下單后第二日連續(xù)下單的用戶比率 215
10.1.3 每件商品銷售首年的年份、銷售數(shù)量和銷售總金額 218
10.1.4 查詢所有用戶連續(xù)登錄2日及以上的日期區(qū)間 220
10.1.5 訂單金額趨勢(shì)分析 223
10.1.6 查詢每名用戶登錄日期的最大空檔期 225
10.1.7 查詢同一時(shí)間多地登錄的用戶 227
10.1.8 銷售總金額完成任務(wù)指標(biāo)的商品 230
10.1.9 各品類中商品價(jià)格的中位數(shù) 232
10.1.10 求商品連續(xù)售賣的時(shí)間區(qū)間 234
10.1.11 根據(jù)活躍間隔對(duì)用戶進(jìn)行分級(jí)的結(jié)果統(tǒng)計(jì) 237
10.2 面試真題 239
10.2.1 同時(shí)在線人數(shù)問題 239
10.2.2 會(huì)話劃分問題 242
10.2.3 間斷連續(xù)登錄用戶問題 247
10.2.4 日期交叉問題 251
10.3 本章總結(jié) 255
第11章 分區(qū)表和分桶表 256
11.1 分區(qū)表 256
11.1.1 分區(qū)表基本語法 256
11.1.2 二級(jí)分區(qū)表 258
11.1.3 動(dòng)態(tài)分區(qū) 259
11.2 分桶表 260
11.2.1 分桶表基本語法 260
11.2.2 分桶排序表 261
11.3 本章總結(jié) 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表數(shù)據(jù)進(jìn)行壓縮 267
12.2.3 計(jì)算過程中使用壓縮 267
12.3 本章總結(jié) 268
第13章 MapReduce引擎下的企業(yè)級(jí)性能調(diào)優(yōu) 269
13.1 測(cè)試數(shù)據(jù)準(zhǔn)備 269
13.1.1 訂單表(2000萬條數(shù)據(jù)) 269
13.1.2 支付表(600萬條數(shù)據(jù)) 270
13.1.3 商品信息表(100萬條數(shù)據(jù)) 271
13.1.4 。▍^(qū)、市)信息表(34條數(shù)據(jù)) 271
13.2 計(jì)算資源配置調(diào)優(yōu) 272
13.2.1 YARN資源配置調(diào)優(yōu) 272
13.2.2 MapReduce資源配置調(diào)優(yōu) 273
13.3 使用Explain命令查看執(zhí)行計(jì)劃 274
13.3.1 基本語法 274
13.3.2 案例實(shí)操 274
13.3.3 執(zhí)行計(jì)劃分析 278
13.4 分組聚合 281
13.4.1 優(yōu)化說明 281
13.4.2 優(yōu)化案例 282
13.5 Join優(yōu)化 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 數(shù)據(jù)傾斜 300
13.6.1 數(shù)據(jù)傾斜概述 300
13.6.2 分組聚合導(dǎo)致的數(shù)據(jù)傾斜 300
13.6.3 join連接導(dǎo)致的數(shù)據(jù)傾斜 303
13.7 任務(wù)并行度 308
13.7.1 優(yōu)化說明 308
13.7.2 優(yōu)化案例 309
13.8 小文件合并 310
13.8.1 優(yōu)化說明 310
13.8.2 優(yōu)化案例 311
13.9 其他性能優(yōu)化手段 312
13.9.1 CBO優(yōu)化 312
13.9.2 謂詞下推 313
13.9.3 矢量化查詢 314
13.9.4 Fetch抓取 315
13.9.5 本地模式 315
13.9.6 并行執(zhí)行 315
13.9.7 嚴(yán)格模式 316
13.10 本章總結(jié) 316
第14章 Hive On Tez的企業(yè)級(jí)性能調(diào)優(yōu) 317
14.1 初識(shí)Hive On Tez 317
14.1.1 Tez 概述 317
14.1.2 Hive On Tez部署 318
14.2 計(jì)算資源配置 322
14.3 執(zhí)行計(jì)劃與統(tǒng)計(jì)信息 323
14.3.1 執(zhí)行計(jì)劃 323
14.3.2 統(tǒng)計(jì)信息 326
14.4 任務(wù)并行度 327
14.4.1 優(yōu)化說明 327
14.4.2 Reducer并行度優(yōu)化案例 329
14.5 分組聚合 330
14.6 Join 330
14.6.1 Join算法 330
14.6.2 Hive On Tez中Join算法的實(shí)現(xiàn) 334
14.6.3 Hive On Tez中Join算法的選擇策略 337
14.6.4 優(yōu)化案例 338
14.7 小文件合并 341
14.7.1 優(yōu)化說明 341
14.7.2 優(yōu)化案例 342
14.8 數(shù)據(jù)傾斜 343
14.9 本章總結(jié) 344
第15章 Hive On Spark的企業(yè)級(jí)性能調(diào)優(yōu) 345
15.1 Hive On Spark概述 345
15.1.1 什么是Spark 345
15.1.2 Spark的基本架構(gòu) 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配置實(shí)操 351
15.3 使用Explain命令查看執(zhí)行計(jì)劃 352
15.4 分組聚合優(yōu)化 355
15.5 Join優(yōu)化 356
15.6 數(shù)據(jù)傾斜優(yōu)化 356
15.7 計(jì)算引擎總結(jié) 356
15.8 本章總結(jié) 358