Hive“出身名門”,是最初由Facebook公司開發(fā)的數(shù)據(jù)倉庫工具。它簡單且容易上手,是深入學習Hadoop技術的一個很好的切入點。本書由數(shù)據(jù)庫專家和大數(shù)據(jù)專家共同撰寫,具體內容包括:Hive的安裝和配置,其核心組件和架構,Hive數(shù)據(jù)操作語言,如何加載、查詢和分析數(shù)據(jù),Hive的性能調優(yōu)以及安全性,等等。本書旨在為讀者打牢基礎,從而踏上專業(yè)的大數(shù)據(jù)處理之旅。
適讀人群 :本書面向數(shù)據(jù)科學家以及對大數(shù)據(jù)技術感興趣的讀者。
面對與日俱增的海量數(shù)據(jù),能否從中提取商業(yè)價值直接關乎公司的市場競爭力。Hive是大數(shù)據(jù)生態(tài)圈必不可少的數(shù)據(jù)倉庫,它為存儲在Hadoop文件系統(tǒng)中的數(shù)據(jù)提供便捷的類SQL查詢、統(tǒng)計和分析,從而為公司進入大數(shù)據(jù)生態(tài)圈并邁向商業(yè)智能鋪平道路。
本書著眼于Hive在真實環(huán)境中的應用,內容囊括Hive的方方面面,是針對大數(shù)據(jù)分析人員的實踐參考指南。
- 理解Hive的架構和數(shù)據(jù)類型
- 高效執(zhí)行DML操作
- 查詢半結構化數(shù)據(jù)
- 巧妙提升Hive的性能
- 了解Hive的安全性及發(fā)展趨勢
斯科特·肖(Scott Shaw)
Hortonworks公司解決方案工程師,曾為微軟公司的商業(yè)智能項目擔任顧問,擁有近20年的數(shù)據(jù)管理經(jīng)驗。作為演講者和培訓師,他致力于普及分布式計算、大數(shù)據(jù)概念、商業(yè)智能、Hive和Hadoop。
安德烈亞斯·弗朗索瓦·弗穆爾恩(Andreas Fran?ois Vermeulen)
集數(shù)據(jù)科學家、數(shù)據(jù)倉庫架構師、博士研究員、企業(yè)顧問等角色于一身,曾獲“英國數(shù)據(jù)科學技術先鋒”稱號,廣泛涉足數(shù)據(jù)工程、商業(yè)智能、云架構、深度學習等多個領域。
安庫爾·古普塔(Ankur Gupta)
Hortonworks公司解決方案工程師,曾在Oracle公司擔任顧問,有多年從事數(shù)據(jù)架構師和Oracle數(shù)據(jù)庫管理員的經(jīng)驗,著有Oracle GoldenGate 11g Complete Cookbook。
戴維·杰魯姆加德(David Kjerrumgaard)
Streamlio公司解決方案架構主管,曾是Hortonworks公司的系統(tǒng)架構師和數(shù)據(jù)流實踐主管,擁有Certified Developer for Apache Hadoop認證,精通Hive、Kafka、Spark、Storm等技術。
第 1章 為Hive打好基礎:Hadoop 1
1.1 一只小象出生了 2
1.2 Hadoop的結構 3
1.3 數(shù)據(jù)冗余 6
1.3.1 傳統(tǒng)的高可用性 6
1.3.2 Hadoop的高可用性 9
1.4 MapReduce處理 12
1.4.1 超越MapReduce 16
1.4.2 YARN和現(xiàn)代數(shù)據(jù)架構 17
1.4.3 Hadoop 和開源社區(qū) 19
1.4.4 我們身在何處 22
第 2 章 Hive 簡介 24
2.1 Hadoop 發(fā)行版 25
2.2 集群架構 27
2.3 Hive 的安裝 30
2.4 探尋你的方式 32
2.5 Hive CLI 35
第3 章 Hive架構 37
3.1 Hive組件 37
3.2 HCatalog 38
3.3 HiveServer2 40
3.4 客戶端工具 42
3.5 執(zhí)行引擎:Tez 46
第4 章 Hive表DDL 48
4.1 schema-on-read 48
4.2 Hive數(shù)據(jù)模型 49
4.2.1 模式/數(shù)據(jù)庫 49
4.2.2 為什么使用多個模式/數(shù)據(jù)庫 49
4.2.3 創(chuàng)建數(shù)據(jù)庫 49
4.2.4 更改數(shù)據(jù)庫 50
4.2.5 刪除數(shù)據(jù)庫 50
4.2.6 列出數(shù)據(jù)庫 51
4.3 Hive中的數(shù)據(jù)類型 51
4.3.1 基本數(shù)據(jù)類型 51
4.3.2 選擇數(shù)據(jù)類型 51
4.3.3 復雜數(shù)據(jù)類型 52
4.4 表 53
4.4.1 創(chuàng)建表 53
4.4.2 列出表 54
4.4.3 內部表/外部表 54
4.4.4 內部表/受控表 55
4.4.5 內部表/外部表示例 55
4.4.6 表的屬性 59
4.4.7 生成已有表的CREATE TABLE命令 60
4.4.8 分區(qū)和分桶 61
4.4.9 分區(qū)注意事項 63
4.4.10 對日期列進行高效分區(qū) 63
4.4.11 分桶的注意事項 65
4.4.12 更改表 66
4.4.13 ORC文件格式 67
4.4.14 更改表分區(qū) 68
4.4.15 修改列 72
4.4.16 刪除表/分區(qū) 72
4.4.17 保護表/分區(qū) 73
4.4.18 其他CREATE TABLE命令選項 73
第5 章 數(shù)據(jù)操作語言 75
5.1 將數(shù)據(jù)裝載到表中 75
5.1.1 使用存儲在HDFS中的文件裝載數(shù)據(jù) 75
5.1.2 使用查詢裝載數(shù)據(jù) 77
5.1.3 將查詢到的數(shù)據(jù)寫入文件系統(tǒng) 80
5.1.4 直接向表插入值 81
5.1.5 直接更新表中數(shù)據(jù) 83
5.1.6 在表中直接刪除數(shù)據(jù) 84
5.1.7 創(chuàng)建結構相同的表 85
5.2 連接 86
5.2.1 使用等值連接來整合表 86
5.2.2 使用外連接 87
5.2.3 使用左半連接 89
5.2.4 用單次MapReduce實現(xiàn)連接 90
5.2.5 最后使用最大的表 91
5.2.6 事務處理 92
5.2.7 ACID是什么,以及為什么要用到它 92
5.2.8 Hive配置 92
第6章 將數(shù)據(jù)裝載到Hive 94
6.1 裝載數(shù)據(jù)之前的設計注意事項 94
6.2 將數(shù)據(jù)裝載到HDFS 95
6.2.1 Ambari 文件視圖 95
6.2.2 Hadoop命令行 97
6.2.3 HDFS的NFS Gateway 97
6.2.4 Sqoop 98
6.2.5 Apache NiFi 101
6.3 用Hive 訪問數(shù)據(jù) 105
6.3.1 外部表 105
6.3.2 LOAD DATA語句 106
6.4 在Hive中裝載增量變更數(shù)據(jù) 107
6.5 Hive流處理 107
6.6 小結 108
第7章 查詢半結構化數(shù)據(jù) 109
7.1 點擊流數(shù)據(jù) 111
7.1.1 攝取數(shù)據(jù) 113
7.1.2 創(chuàng)建模式 116
7.1.3 裝載數(shù)據(jù) 116
7.1.4 查詢數(shù)據(jù) 116
7.2 攝取JSON數(shù)據(jù) 119
7.2.1 使用UDF查詢JSON 121
7.2.2 使用SerDe訪問JSON 122
第8章 Hive分析 125
8.1 構建分析模型 125
8.1.1 使用太陽模型獲取需求 125
8.1.2 將太陽模型轉換為星型模式 129
8.1.3 構建數(shù)據(jù)倉庫 137
8.2 評估分析模型 . 140
8.2.1 評估太陽模型 140
8.2.2 評估聚合結果 142
8.2.3 評估數(shù)據(jù)集市 143
8.3 掌握數(shù)據(jù)倉庫管理 144
8.3.1 必備條件 144
8.3.2 檢索數(shù)據(jù)庫 144
8.3.3 評估數(shù)據(jù)庫 147
8.3.4 過程數(shù)據(jù)庫 160
8.3.5 轉換數(shù)據(jù)庫 185
8.3.6 你掌握了什么 192
8.3.7 組織數(shù)據(jù)庫 192
8.3.8 報表數(shù)據(jù)庫 196
8.3.9 示例報表 197
8.4 高級分析 199
8.5 接下來學什么 199
第9章 Hive性能調優(yōu) 200
9.1 Hive性能檢查表 200
9.2 執(zhí)行引擎 201
9.2.1 MapReduce 201
9.2.2 Tez 201
9.3 存儲格式 203
9.3.1 ORC格式 203
9.3.2 Parquet格式 205
9.4 矢量化查詢執(zhí)行 206
9.5 查詢執(zhí)行計劃 206
9.5.1 基于代價的優(yōu)化 208
9.5.2 執(zhí)行計劃 210
9.5.3 性能檢查表小結 212
第 10章 Hive的安全性 213
10.1 數(shù)據(jù)安全性的幾個方面 213
10.1.1 身份認證 214
10.1.2 授權 214
10.1.3 管理 214
10.1.4 審計 214
10.1.5 數(shù)據(jù)保護 214
10.2 Hadoop的安全性 215
10.3 Hive的安全性 215
10.3.1 默認授權模式 215
10.3.2 基于存儲的授權模式 216
10.3.3 基于SQL標準的授權模式 217
10.3.4 管理通過SQL進行的訪問 218
10.4 使用Ranger進行Hive授權 219
10.4.1 訪問Ranger用戶界面 220
10.4.2 創(chuàng)建Ranger策略 220
10.4.3 使用Ranger審計 222
第 11章 Hive的未來 224
11.1 LLAP 224
11.2 Hive-on-Spark 225
11.3 Hive:ACID 和MERGE 225
11.4 可調隔離等級 225
11.5 ROLAP/基于立方體的分析 226
11.6 HiveServer2的發(fā)展 226
11.7 面向不同工作負載的多個HiveServer2實例 226
附錄A 建立大數(shù)據(jù)團隊 227
附錄B Hive函數(shù) 231