HAWQ數據倉庫與數據挖掘實戰 版權信息
- ISBN:9787302498025
- 條形碼:9787302498025 ; 978-7-302-49802-5
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
HAWQ數據倉庫與數據挖掘實戰 本書特色
HAWQ安裝、連接、對象與資源管理、查詢優化、備份恢復、高可用性、運維監控
ETL處理、自動調度系統、維度表與事實表技術、OLAP與數據的圖形化表示
降維、協同過濾、關聯規則、回歸、聚類、分類等常見數據挖掘與機器學習方法
HAWQ數據倉庫與數據挖掘實戰 內容簡介
Apache HAWQ是一個SQL-on-Hadoop產品,它很好適合用于Hadoop平臺上快速構建數據倉庫系統。HAWQ具有大規模并行處理、完善的SQL兼容性、支持存儲過程和事務、出色的性能表現等特性,還可與開源數據挖掘庫MADlib輕松整合,從而使用SQL就能進行數據挖掘與機器學習。《HAWQ數據倉庫與數據挖掘實戰》內容分技術解析、實戰演練與數據挖掘三個部分共27章。技術解析部分說明HAWQ的基礎架構與功能特性,包括安裝、連接、對象與資源管理、查詢優化、備份恢復、高可用性等。實戰演練部分用一個完整的示例,說明如何使用HAWQ取代傳統數據倉庫,包括ETL處理、自動調度系統、維度表與事實表技術、OLAP與數據的圖形化表示等。數據挖掘部分用實例說明HAWQ與MADlib整合,實現降維、協同過濾、關聯規則、回歸、聚類、分類等常見數據挖掘與機器學習方法。《HAWQ數據倉庫與數據挖掘實戰》適合數據庫管理員、大數據技術人員、Hadoop技術人員、數據倉庫技術人員,也適合高等院校和培訓機構相關專業的師生教學參考。
HAWQ數據倉庫與數據挖掘實戰 目錄
目 錄
**部分 HAWQ技術解析
第1章 HAWQ概述 3
1.1 SQL-on-Hadoop 3
1.1.1 對SQL-on-Hadoop的期待 3
1.1.2 SQL-on-Hadoop的實現方式 4
1.2 HAWQ簡介 6
1.2.1 歷史與現狀 7
1.2.2 功能特性 7
1.3 HAWQ系統架構 9
1.3.1 系統架構 10
1.3.2 內部架構 11
1.4 為什么選擇HAWQ 12
1.4.1 常用SQL-on-Hadoop產品的不足 12
1.4.2 HAWQ的可行性 13
1.4.3 適合DBA的解決方案 18
1.5 小結 18
第2章 HAWQ安裝部署 19
2.1 安裝規劃 19
2.1.1 選擇安裝介質 19
2.1.2 選擇HAWQ版本 20
2.1.3 確認Ambari與HDP的版本兼容性 20
2.2 安裝前準備 21
2.2.1 確認*小系統需求 21
2.2.2 準備系統安裝環境 22
2.2.3 建立本地Repository 24
2.3 安裝Ambari 25
2.4 安裝HDP集群 27
2.5 安裝HAWQ 29
2.6 啟動與停止HAWQ 34
2.6.1 基本概念 34
2.6.2 操作環境 34
2.6.3 基本操作 36
2.7 小結 40
第3章 連接管理 41
3.1 配置客戶端身份認證 41
3.2 管理角色與權限 45
3.2.1 HAWQ中的角色與權限 45
3.2.2 管理角色及其成員 46
3.2.3 管理對象權限 48
3.2.4 口令加密 49
3.3 psql連接HAWQ 50
3.4 Kettle連接HAWQ 52
3.5 連接常見問題 55
3.6 小結 56
第4章 數據庫對象管理 57
4.1 創建和管理數據庫 57
4.2 創建和管理表空間 61
4.3 創建和管理模式 65
4.4 創建和管理表 72
4.4.1 創建表 72
4.4.2 刪除表 74
4.4.3 查看表對應的HDFS文件 74
4.5 創建和管理視圖 76
4.6 管理其他對象 77
4.7 小結 78
第5章 分區表 79
5.1 HAWQ中的分區表 79
5.2 確定分區策略 80
5.3 創建分區表 81
5.3.1 范圍分區與列表分區 81
5.3.2 多級分區 86
5.3.3 對已存在的非分區表進行分區 86
5.4 分區消除 87
5.5 分區表維護 91
5.6 小結 98
第6章 存儲管理 99
6.1 數據存儲選項 99
6.2 數據分布策略 103
6.2.1 數據分布策略概述 103
6.2.2 選擇數據分布策略 104
6.2.3 數據分布用法 108
6.3 從已有的表創建新表 111
6.4 小結 117
第7章 資源管理 118
7.1 HAWQ資源管理概述 118
7.1.1 全局資源管理 118
7.1.2 HAWQ資源隊列 119
7.1.3 資源管理器配置原則 119
7.2 配置獨立資源管理器 120
7.3 整合YARN 123
7.4 管理資源隊列 129
7.5 查詢資源管理器狀態 134
7.6 小結 137
第8章 數據管理 138
8.1 基本數據操作 138
8.2 數據裝載與卸載 141
8.2.1 gpfdist協議及其外部表 141
8.2.2 基于Web的外部表 148
8.2.3 使用外部表裝載數據 151
8.2.4 外部表錯誤處理 151
8.2.5 使用hawq load裝載數據 152
8.2.6 使用COPY復制數據 155
8.2.7 卸載數據 157
8.2.8 hawq register 159
8.2.9 格式化數據文件 159
8.3 數據庫統計 163
8.3.1 系統統計 163
8.3.2 統計配置 166
8.4 PXF 168
8.4.1 安裝配置PXF 168
8.4.2 PXF profile 168
8.4.3 訪問HDFS文件 170
8.4.4 訪問Hive數據 174
8.4.5 訪問JSON數據 186
8.4.6 向HDFS中寫入數據 190
8.5 小結 194
第9章 過程語言 195
9.1 HAWQ內建SQL語言 195
9.2 PL/pgSQL函數 197
9.3 給HAWQ內部函數起別名 198
9.4 表函數 198
9.5 參數個數可變的函數 201
9.6 多態類型 202
9.7 UDF管理 205
9.8 UDF實例——遞歸樹形遍歷 207
9.9 小結 214
第10章 查詢優化 215
10.1 HAWQ的查詢處理流程 215
10.2 GPORCA查詢優化器 217
10.2.1 GPORCA的改進 218
10.2.2 啟用GPORCA 224
10.2.3 使用GPORCA需要考慮的問題 225
10.2.4 GPORCA的限制 227
10.3 性能優化 228
10.4 查詢剖析 232
10.5 小結 238
第11章 高可用性 239
11.1 備份與恢復 239
11.1.1 備份方法 239
11.1.2 備份與恢復示例 242
11.2 高可用性 247
11.2.1 HAWQ高可用簡介 247
11.2.2 Master節點鏡像 248
11.2.3 HAWQ文件空間與HDFS高可用 251
11.2.4 HAWQ容錯服務 260
11.3 小結 262
第二部分 HAWQ實戰演練
第12章 建立數據倉庫示例模型 265
12.1 業務場景 265
12.2 數據倉庫架構 267
12.3 實驗環境 268
12.4 HAWQ相關配置 269
12.5 創建示例數據庫 273
12.5.1 在hdp4上的MySQL中創建源庫對象并生成測試數據 273
12.5.2 創建目標庫對象 275
12.5.3 裝載日期維度數據 283
12.6 小結 284
第13章 初始ETL 285
13.1 用Sqoop初始數據抽取 285
13.1.1 覆蓋導入 286
13.1.2 增量導入 286
13.1.3 建立初始抽取腳本 287
13.2 向HAWQ初始裝載數據 288
13.2.1 數據源映射 288
13.2.2 確定SCD處理方法 288
13.2.3 實現代理鍵 289
13.2.4 建立初始裝載腳本 289
13.3 建立初始ETL腳本 291
13.4 小結 293
第14章 定期ETL 294
14.1 變化數據捕獲 294
14.2 創建維度表版本視圖 296
14.3 創建時間戳表 297
14.4 用Sqoop定期數據抽取 298
14.5 建立定期裝載HAWQ函數 298
14.6 建立定期ETL腳本 303
14.7 測試 303
14.7.1 準備測試數據 303
14.7.2 執行定期ETL腳本 304
14.7.3 確認ETL過程正確執行 305
14.8 動態分區滾動 307
14.9 準實時數據抽取 309
14.10 小結 317
第15章 自動調度執行ETL作業 318
15.1 Oozie簡介 318
15.2 建立工作流前的準備 320
15.3 用Oozie建立定期ETL工作流 324
15.4 Falcon簡介 328
15.5 用Falcon process調度Oozie工作流 329
15.6 小結 332
第16章 維度表技術 333
16.1 增加列 333
16.2 維度子集 342
16.3 角色扮演維度 348
16.4 層次維度 354
16.4.1 固定深度的層次 355
16.4.2 多路徑層次 357
16.4.3 參差不齊的層次 359
16.5 退化維度 361
16.6 雜項維度 366
16.7 維度合并 374
16.8 分段維度 380
16.9 小結 386
第17章 事實表技術 387
17.1 周期快照 388
17.2 累積快照 394
17.3 無事實的事實表 404
17.4 遲到的事實 409
17.5 累積度量 416
17.6 小結 422
第18章 聯機分析處理 423
18.1 聯機分析處理簡介 423
18.1.1 概念 423
18.1.2 分類 424
18.1.3 性能 426
18.2 聯機分析處理實例 427
18.2.1 銷售訂單 427
18.2.2 行列轉置 433
18.3 交互查詢與圖形化顯示 440
18.3.1 Zeppelin簡介 440
18.3.2 使用Zeppelin執行HAWQ查詢 441
18.4 小結 448
第三部分 HAWQ數據挖掘
第19章 整合HAWQ與MADlib 451
19.1 MADlib簡介 452
19.2 安裝與卸載MADlib 455
19.3 MADlib基礎 458
19.3.1 向量 458
19.3.2 矩陣 469
19.4 小結 484
第20章 奇異值分解 485
20.1 奇異值分解簡介 485
20.2 MADlib奇異值分解函數 486
20.3 奇異值分解實現推薦算法 489
20.4 小結 501
第21章 主成分分析 502
21.1 主成分分析簡介 502
21.2 MADlib的PCA相關函數 504
21.3 PCA應用示例 509
21.4 小結 513
第22章 關聯規則方法 514
22.1 關聯規則簡介 514
22.2 Apriori算法 517
22.2.1 Apriori算法基本思想 517
22.2.2 Apriori算法步驟 518
22.3 MADlib的Apriori算法函數 518
22.4 Apriori應用示例 519
22.5 小結 524
第23章 聚類方法 525
23.1 聚類方法簡介 525
23.2 k-means方法 526
23.2.1 基本思想 527
23.2.2 原理與步驟 527
23.2.3 k-means算法 527
23.3 MADlib的k-means相關函數 529
23.4 k-means應用示例 532
23.5 小結 537
第24章 回歸方法 538
24.1 回歸方法簡介 538
24.2 Logistic回歸 539
24.3 MADlib的Logistic回歸相關函數 539
24.4 Logistic回歸示例 542
24.5 小結 546
第25章 分類方法 547
25.1 分類方法簡介 547
25.2 決策樹 549
25.2.1 決策樹的基本概念 549
25.2.2 決策樹的構建步驟 549
25.3 MADlib的決策樹相關函數 551
25.4 決策樹示例 555
25.5 小結 561
第26章 圖算法 562
26.1 圖算法簡介 562
26.2 單源*短路徑 565
26.3 MADlib的單源*短路徑相關函數 566
26.4 單源*短路徑示例 567
26.5 小結 569
第27章 模型驗證 570
27.1 交叉驗證簡介 570
27.2 MADlib的交叉驗證相關函數 573
27.3 交叉驗證示例 575
27.4 小結 578
展開全部
HAWQ數據倉庫與數據挖掘實戰 節選
1.4 為什么選擇HAWQ
前面已經介紹了幾種常用SQL-on-Hadoop 的實現方式,也了解了HAWQ的功能特性與系
統架構。那么站在用戶的角度,我們為什么要選擇HAWQ?近年來我嘗試過幾種
SQL-on-Hadoop 產品,從*初的Hive,到Spark SQL,再到Impala,在這些產品上進行了一系
列ETL、CDC、多維數據倉庫、OLAP 實驗。從數據庫的角度看,這些產品與傳統的DBMS
相比,功能不夠完善,性能差距很大,甚至很難找到一個相對完備的Hadoop 數據倉庫解決方
案。這里就以個人的實踐體驗來簡述這些產品的不足以及HAWQ的可行性。
1.4.1 常用SQL-on-Hadoop產品的不足
1. Hive
Hive 是一款老牌的Hadoop 數據倉庫產品,能夠部署在所有Hadoop 發行版本上。它在
MapReduce 計算框架上封裝一個SQL 語義層,極大簡化了MR 程序的開發。直到現在,Hive
依然以其穩定性贏得了大量用戶。
Hive 的缺點也很明顯——速度太慢。隨著技術的不斷進步,Hive 的執行引擎從MapReduce
發展出Hive on Spark、Hive on Tez等。特別是運行在Tez 框架上的Hive,其性能有了很大改
進。即便如此,Hive 的速度還是比較適合后臺批處理應用場景,而不適合交互式即時查詢和
聯機分析。
第1章 HAWQ 概述
2. Spark SQL
Spark SQL是Hadoop 中另一個著名的SQL 引擎,正如名字所表示的,它以Spark 作為底
層計算框架,實際上是一個Scala 程序語言的子集。Spark 基本的數據結構是RDD,一個分布
于集群節點的只讀數據集合。傳統的MapReduce 框架強制在分布式編程中使用一種特定的線
性數據流處理方式。MapReduce 程序從磁盤讀取輸入數據,把數據分解成鍵/值對,經過混洗、
排序、歸并等數據處理后產生輸出,并將*終結果保存在磁盤。Map 階段和Reduce 階段的結
果均要寫磁盤,這大大降低了系統性能。也是由于這個原因,MapReduce 大都被用于執行批
處理任務。
為了解決MapReduce 的性能問題,Spark使用RDD 共享內存結構。這種內存操作減少了
磁盤IO,大大提高了計算速度。開發Spark 的初衷是用于機器學習系統的培訓算法,而不是
SQL 查詢。Spark 宣稱其應用的延遲可以比MapReduce 降低幾個數量級,但是在我們的實際
使用中,20TB 的數據集合上用Spark SQL 查詢要10 分鐘左右出結果,這個速度縱然是比Hive
快了4 倍,但顯然不能支撐交互查詢和OLAP應用。Spark 還有一個問題,即需要占用大量內
存,當內存不足時,很容易出現OOM錯誤。
3. Impala
Impala 的*大優勢在于執行速度。官方宣稱大多數情況下它能在幾秒或幾分鐘內返回查
詢結果,而相同的Hive 查詢通常需要幾十分鐘甚至幾小時完成,因此Impala 適合對Hadoop
文件系統上的數據進行分析式查詢。Impala 默認使用Parquet 文件格式,這種列式存儲方式對
于典型數據倉庫場景下的大查詢是較為高效的。
Impala 的問題主要體現在功能上的欠缺。例如,不支持Date 數據類型,不支持XML 和
JSON 相關函數,不支持covar_pop、covar_samp、corr、percentile、 percentile_approx、
histogram_numeric、collect_set 等聚合函數,不支持rollup、cube、grouping set 等操作,不支
持數據抽樣(Sampling),不支持ORC 文件格式,等等。其中,分組聚合、取中位數等是數
據分析中的常用操作,當前的Impala 存在如此多的局限,使它在可用性上大打折扣,實際使
用時要格外注意。
HAWQ數據倉庫與數據挖掘實戰 作者簡介
王雪迎 ,王雪迎 ,畢業于中國地質大學計算機專業,高級工程師,從事數據庫、數據倉庫相關技術工作20年。先后供職于北京現代商業信息技術有限公司、北京在線九州信息技術服務有限公司、華北計算技術研究所、北京優貝在線網絡科技有限公司,擔任DBA、數據架構師等職位。著有圖書《Hadoop數據倉庫實踐》。