Hive“出身名門”,是最初由Facebook公司開發(fā)的數(shù)據倉庫工具。它簡單且容易上手,是深入學習Hadoop技術的一個很好的切入點。本書由數(shù)據庫專家和大數(shù)據專家共同撰寫,具體內容包括:Hive的安裝和配置,其核心組件和架構,Hive數(shù)據操作語言,如何加載、查詢和分析數(shù)據,Hive的性能調優(yōu)以及安全性,等等。本書旨在為讀者打牢基礎,從而踏上專業(yè)的大數(shù)據處理之旅。
適讀人群 :本書面向數(shù)據科學家以及對大數(shù)據技術感興趣的讀者。
面對與日俱增的海量數(shù)據,能否從中提取商業(yè)價值直接關乎公司的市場競爭力。Hive是大數(shù)據生態(tài)圈必不可少的數(shù)據倉庫,它為存儲在Hadoop文件系統(tǒng)中的數(shù)據提供便捷的類SQL查詢、統(tǒng)計和分析,從而為公司進入大數(shù)據生態(tài)圈并邁向商業(yè)智能鋪平道路。
本書著眼于Hive在真實環(huán)境中的應用,內容囊括Hive的方方面面,是針對大數(shù)據分析人員的實踐參考指南。
- 理解Hive的架構和數(shù)據類型
- 高效執(zhí)行DML操作
- 查詢半結構化數(shù)據
- 巧妙提升Hive的性能
- 了解Hive的安全性及發(fā)展趨勢
斯科特·肖(Scott Shaw)
Hortonworks公司解決方案工程師,曾為微軟公司的商業(yè)智能項目擔任顧問,擁有近20年的數(shù)據管理經驗。作為演講者和培訓師,他致力于普及分布式計算、大數(shù)據概念、商業(yè)智能、Hive和Hadoop。
安德烈亞斯·弗朗索瓦·弗穆爾恩(Andreas Fran?ois Vermeulen)
集數(shù)據科學家、數(shù)據倉庫架構師、博士研究員、企業(yè)顧問等角色于一身,曾獲“英國數(shù)據科學技術先鋒”稱號,廣泛涉足數(shù)據工程、商業(yè)智能、云架構、深度學習等多個領域。
安庫爾·古普塔(Ankur Gupta)
Hortonworks公司解決方案工程師,曾在Oracle公司擔任顧問,有多年從事數(shù)據架構師和Oracle數(shù)據庫管理員的經驗,著有Oracle GoldenGate 11g Complete Cookbook。
戴維·杰魯姆加德(David Kjerrumgaard)
Streamlio公司解決方案架構主管,曾是Hortonworks公司的系統(tǒng)架構師和數(shù)據流實踐主管,擁有Certified Developer for Apache Hadoop認證,精通Hive、Kafka、Spark、Storm等技術。
第 1章 為Hive打好基礎:Hadoop 1
1.1 一只小象出生了 2
1.2 Hadoop的結構 3
1.3 數(shù)據冗余 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ù)據架構 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ù)據模型 49
4.2.1 模式/數(shù)據庫 49
4.2.2 為什么使用多個模式/數(shù)據庫 49
4.2.3 創(chuàng)建數(shù)據庫 49
4.2.4 更改數(shù)據庫 50
4.2.5 刪除數(shù)據庫 50
4.2.6 列出數(shù)據庫 51
4.3 Hive中的數(shù)據類型 51
4.3.1 基本數(shù)據類型 51
4.3.2 選擇數(shù)據類型 51
4.3.3 復雜數(shù)據類型 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ù)據操作語言 75
5.1 將數(shù)據裝載到表中 75
5.1.1 使用存儲在HDFS中的文件裝載數(shù)據 75
5.1.2 使用查詢裝載數(shù)據 77
5.1.3 將查詢到的數(shù)據寫入文件系統(tǒng) 80
5.1.4 直接向表插入值 81
5.1.5 直接更新表中數(shù)據 83
5.1.6 在表中直接刪除數(shù)據 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ù)據裝載到Hive 94
6.1 裝載數(shù)據之前的設計注意事項 94
6.2 將數(shù)據裝載到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ù)據 105
6.3.1 外部表 105
6.3.2 LOAD DATA語句 106
6.4 在Hive中裝載增量變更數(shù)據 107
6.5 Hive流處理 107
6.6 小結 108
第7章 查詢半結構化數(shù)據 109
7.1 點擊流數(shù)據 111
7.1.1 攝取數(shù)據 113
7.1.2 創(chuàng)建模式 116
7.1.3 裝載數(shù)據 116
7.1.4 查詢數(shù)據 116
7.2 攝取JSON數(shù)據 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ù)據倉庫 137
8.2 評估分析模型 . 140
8.2.1 評估太陽模型 140
8.2.2 評估聚合結果 142
8.2.3 評估數(shù)據集市 143
8.3 掌握數(shù)據倉庫管理 144
8.3.1 必備條件 144
8.3.2 檢索數(shù)據庫 144
8.3.3 評估數(shù)據庫 147
8.3.4 過程數(shù)據庫 160
8.3.5 轉換數(shù)據庫 185
8.3.6 你掌握了什么 192
8.3.7 組織數(shù)據庫 192
8.3.8 報表數(shù)據庫 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ù)據安全性的幾個方面 213
10.1.1 身份認證 214
10.1.2 授權 214
10.1.3 管理 214
10.1.4 審計 214
10.1.5 數(shù)據保護 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ù)據團隊 227
附錄B Hive函數(shù) 231