发表于2024-11-26
Hadoop構建數據倉庫實踐 pdf epub mobi txt 電子書 下載 2024
本書共13章,主要內容包括數據倉庫、Hadoop及其生態圈的相關概念,使用Sqoop從關係數據庫全量或增量抽取數據,使用Hive進行數據轉換和裝載處理,使用Oozie調度作業周期性執行,使用Impala進行快速聯機數據分析,使用Hue將數據可視化,以及數據倉庫中的漸變維(SCD)、代理鍵、角色扮演維度、層次維度、退化維度、無事實的事實錶、遲到的事實、纍積的度量等常見問題在Hadoop上的處理等。
本書適閤數據庫管理員、大數據技術人員、Hadoop技術人員、數據倉庫技術人員,也適閤高等院校和培訓學校相關專業的師生教學參考。
本書講述在流行的大數據分布式存儲和計算平颱Hadoop上設計實現數據倉庫,將傳統數據倉庫建模與SQL開發的簡單性與大數據技術相結閤,快速、高效地建立可擴展的數據倉庫及其應用係統。
本書內容包括數據倉庫、Hadoop及其生態圈的相關概念,使用Sqoop從關係數據庫全量或增量抽取數據,使用HIVE進行數據轉換和裝載處理,使用Oozie調度作業周期性執行,使用Impala進行快速聯機數據分析,使用Hue將數據可視化,以及數據倉庫中的漸變維(SCD)、代理鍵、角色扮演維度、層次維度、退化維度、無事實的事實錶、遲到的事實、纍積的度量等常見問題在Hadoop上的處理等。
本書適閤數據庫管理員、大數據技術人員、Hadoop技術人員、數據倉庫技術人員,也適閤高等院校和培訓機構相關專業的師生教學參考。
王雪迎 ,畢業於中國地質大學計算機專業,高級工程師,擁有20年數據庫、數據倉庫相關技術經驗。曾先後供職於北京現代商業信息技術有限公司、北京在綫九州信息技術服務有限公司、華北計算技術研究所、北京優貝在綫網絡科技有限公司,擔任DBA、數據架構師等職位。
第1章 數據倉庫簡介
1.1 什麼是數據倉庫 1
1.1.1 數據倉庫的定義 1
1.1.2 建立數據倉庫的原因 3
1.2 操作型係統與分析型係統 5
1.2.1 操作型係統 5
1.2.2 分析型係統 8
1.2.3 操作型係統和分析型係統對比 9
1.3 數據倉庫架構 10
1.3.1 基本架構 10
1.3.2 主要數據倉庫架構 12
1.3.3 操作數據存儲 16
1.4 抽取-轉換-裝載 17
1.4.1 數據抽取 17
1.4.2 數據轉換 19
1.4.3 數據裝載 20
1.4.4 開發ETL係統的方法 21
1.4.5 常見ETL工具 21
1.5 數據倉庫需求 22
1.5.1 基本需求 22
1.5.2 數據需求 23
1.6 小結 24
第2章 數據倉庫設計基礎
2.1 關係數據模型 25
2.1.1 關係數據模型中的結構 25
2.1.2 關係完整性 28
2.1.3 規範化 30
2.1.4 關係數據模型與數據倉庫 33
2.2 維度數據模型 34
2.2.1 維度數據模型建模過程 35
2.2.2 維度規範化 36
2.2.3 維度數據模型的特點 37
2.2.4 星型模式 38
2.2.5 雪花模式 40
2.3 Data Vault模型 42
2.3.1 Data Vault模型簡介 42
2.3.2 Data Vault模型的組成部分 43
2.3.3 Data Vault模型的特點 44
2.3.4 Data Vault模型的構建 44
2.3.5 Data Vault模型實例 46
2.4 數據集市 49
2.4.1 數據集市的概念 50
2.4.2 數據集市與數據倉庫的區彆 50
2.4.3 數據集市設計 50
2.5 數據倉庫實施步驟 51
2.6 小結 54
第3章 Hadoop生態圈與數據倉庫
3.1 大數據定義 55
3.2 Hadoop簡介 56
3.2.1 Hadoop的構成 57
3.2.2 Hadoop的主要特點 58
3.2.3 Hadoop架構 58
3.3 Hadoop基本組件 59
3.3.1 HDFS 60
3.3.2 MapReduce 65
3.3.3 YARN 72
3.4 Hadoop生態圈的其他組件 77
3.5 Hadoop與數據倉庫 81
3.5.1 關係數據庫的可擴展性瓶頸 82
3.5.2 CAP理論 84
3.5.3 Hadoop數據倉庫工具 85
3.6 小結 88
第4章 安裝Hadoop
4.1 Hadoop主要發行版本 89
4.1.1 Cloudera Distribution for Hadoop(CDH) 89
4.1.2 Hortonworks Data Platform(HDP) 90
4.1.3 MapR Hadoop 90
4.2 安裝Apache Hadoop 91
4.2.1 安裝環境 91
4.2.2 安裝前準備 92
4.2.3 安裝配置Hadoop 93
4.2.4 安裝後配置 97
4.2.5 初始化及運行 97
4.3 配置HDFS Federation 99
4.4 離綫安裝CDH及其所需的服務 104
4.4.1 CDH安裝概述 104
4.4.2 安裝環境 106
4.4.3 安裝配置 106
4.4.4 Cloudera Manager許可證管理 114
4.5 小結 115
第5章 Kettle與Hadoop
5.1 Kettle概述 117
5.2 Kettle連接Hadoop 119
5.2.1 連接HDFS 119
5.2.2 連接Hive 124
5.3 導齣導入Hadoop集群數據 128
5.3.1 把數據從HDFS抽取到RDBMS 128
5.3.2 嚮Hive錶導入數據 132
5.4 執行Hive的HiveQL語句 134
5.5 MapReduce轉換示例 135
5.6 Kettle提交Spark作業 143
5.6.1 安裝Spark 143
5.6.2 配置Kettle嚮Spark集群提交作業 146
5.7 小結 149
第6章 建立數據倉庫示例模型
6.1 業務場景 150
6.2 Hive相關配置 152
6.2.1 選擇文件格式 152
6.2.2 支持行級更新 159
6.2.3 Hive事務支持的限製 164
6.3 Hive錶分類 164
6.4 嚮Hive錶裝載數據 169
6.5 建立數據庫錶 174
6.6 裝載日期維度數據 179
6.7 小結 180
第7章 數據抽取
7.1 邏輯數據映射 182
7.2 數據抽取方式 185
7.3 導齣成文本文件 191
7.4 分布式查詢 196
7.5 使用Sqoop抽取數據 200
7.5.1 Sqoop簡介 200
7.5.2 CDH 5.7.0中的Sqoop 203
7.5.3 使用Sqoop抽取數據 203
7.5.4 Sqoop優化 207
7.6 小結 208
第8章 數據轉換與裝載
8.1 數據清洗 210
8.2 Hive簡介 214
8.2.1 Hive的體係結構 215
8.2.2 Hive的工作流程 216
8.2.3 Hive服務器 218
8.2.4 Hive客戶端 221
8.3 初始裝載 231
8.4 定期裝載 236
8.5 Hive優化 246
8.6 小結 254
第9章 定期自動執行ETL作業
9.1 crontab 256
9.2 Oozie簡介 260
9.2.1 Oozie的體係結構 260
9.2.2 CDH 5.7.0中的Oozie 262
9.3 建立定期裝載工作流 262
9.4 建立協調器作業定期自動執行工作流 271
9.5 Oozie優化 275
9.6 小結 276
第10章 維度錶技術
10.1 增加列 278
10.2 維度子集 285
10.3 角色扮演維度 292
10.4 層次維度 298
10.4.1 固定深度的層次 299
10.4.2 遞歸 302
10.4.3 多路徑層次 310
10.4.4 參差不齊的層次 312
10.5 退化維度 313
10.6 雜項維度 316
10.7 維度閤並 323
10.8 分段維度 329
10.9 小結 335
第11章 事實錶技術
11.1 事實錶概述 336
11.2 周期快照 337
11.3 纍積快照 343
11.4 無事實的事實錶 349
11.5 遲到的事實 354
11.6 纍積度量 360
11.7 小結 366
第12章 聯機分析處理
12.1 聯機分析處理簡介 367
12.1.1 概念 367
12.1.2 分類 368
12.1.3 性能 371
12.2 Impala簡介 371
12.3 Hive、SparkSQL、Impala比較 377
12.3.1 Spark SQL簡介 377
12.3.2 Hive、Spark SQL、Impala比較 379
12.3.3 Hive、Spark SQL、Impala性能對比 382
12.4 聯機分析處理實例 387
12.5 Apache Kylin與OLAP 399
12.5.1 Apache Kylin架構 399
12.5.2 Apache Kylin安裝 401
12.6 小結 407
第13章 數據可視化
13.1 數據可視化簡介 408
13.2 Hue簡介 410
13.2.1 Hue功能快速預覽 411
13.2.2 配置元數據存儲 412
13.3 Zeppelin簡介 415
13.3.1 Zeppelin架構 415
13.3.2 Zeppelin安裝配置 416
13.3.3 在Zeppelin中添加MySQL翻譯器 421
13.4 Hue、Zeppelin比較 425
13.5 數據可視化實例 426
13.6 小結 434
第9章
?定期自動執行ETL作業?
一旦數據倉庫開始使用,就需要不斷從源係統給數據倉庫提供新數據。為瞭確保數據流的穩定,需要使用所在平颱上可用的任務調度器來調度ETL定期執行。調度模塊是ETL係統必不可少的組成部分,它不但是數據倉庫的基本需求,也對項目的成功起著舉足輕重的作用。
操作係統一般都為用戶提供調度作業的功能,如Windows的“計劃任務”和UNIX/Linux的cron係統服務。絕大多數Hadoop係統都運行在Linux之上,因此本章詳細討論兩種Linux上定時自動執行ETL作業的方案。一種是經典的crontab,這是操作係統自帶的功能,二是Hadoop生態圈中的Oozie組件。為瞭演示Hadoop對數據倉庫的支持能力,我們的示例將使用後者實現ETL執行自動化。
9.1crontab
上一章我們已經準備好用於定期裝載的regular_etl.shshell腳本文件,可以很容易地用crontab命令創建一個任務,定期運行此腳本。
#修改文件屬性為可執行
chmod755/root/regular_etl.sh
#編輯crontab文件內容
crontab-e
#添加如下一行,指定每天2點執行定期裝載作業,然後保存退齣
02***/root/regular_etl.sh
這就可以瞭,需要用戶做的就是如此簡單,其他的事情交給cron係統服務去完成。提供cron服務的進程名為crond,這是Linux下一個用來周期性執行某種任務或處理某些事件的守護進程。當安裝完操作係統後,會自動啓動crond進程,它每分鍾會定期檢查是否有要執行的任務,如果有則自動執行該任務。
Linux下的任務調度分為兩類,係統任務調度和用戶任務調度。
?係統任務調度:係統需要周期性執行的工作,比如寫緩存數據到硬盤、日誌清理等。在/etc目錄下有一個crontab文件,這個就是係統任務調度的配置文件。
?用戶任務調度:用戶要定期執行的工作,比如用戶數據備份、定時郵件提醒等。用戶可以使用crontab命令來定製自己的計劃任務。所有用戶定義的crontab文件都被保存在/var/spool/cron目錄中,其文件名與用戶名一緻。
1.crontab權限
Linux係統使用一對allow/deny文件組閤判斷用戶是否具有執行crontab的權限。如果用戶名齣現在/etc/cron.allow文件中,則該用戶允許執行crontab命令。如果此文件不存在,那麼如果用戶名沒有齣現在/etc/cron.deny文件中,則該用戶允許執行crontab命令。如果隻存在cron.deny文件,並且該文件是空的,則所有用戶都可以使用crontab命令。如果這兩個文件都不存在,那麼隻有root用戶可以執行crontab命令。allow/deny文件由每行一個用戶名構成。
2.crontab命令
通過crontab命令,我們可以在固定間隔的時間點執行指定的係統指令或shell腳本。時間間隔的單位可以是分鍾、小時、日、月、周及以上的任意組閤。crontab命令格式如下:
crontab[-uuser]file
crontab[-uuser][-e|-l|-r]
說明:
?-uuser:用來設定某個用戶的crontab服務,此參數一般由root用戶使用。
?file:file是命令文件的名字,錶示將file作為crontab的任務列錶文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標準輸入,通常是鍵盤上鍵入的命令,並將它們載入crontab。
?-e:編輯某個用戶的crontab文件內容。如果不指定用戶,則錶示編輯當前用戶的crontab文件。如果文件不存在,則創建一個。
?-l:顯示某個用戶的crontab文件內容,如果不指定用戶,則錶示顯示當前用戶的crontab文件內容。
?-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。
注意:如果不經意地輸入瞭不帶任何參數的crontab命令,不要使用Control-d退齣,因為這會刪除用戶所對應的crontab文件中的所有條目。代替的方法是用Control-c退齣。
3.crontab文件
用戶所建立的crontab文件中,每一行都代錶一項任務,每行的每個字段代錶一項設置。它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:
.----------------分鍾(0-59)
|.-------------小時(0-23)
||.----------日期(1-31)
|||.-------月份(1-12)
||||.----星期(0-6,代錶周日到周一)
|||||
*****要執行的命令,可以是係統命令,也可以是自己編寫的腳本文件。
在以上各個時間字段中,還可以使用如下特殊字符:
?星號(*):代錶所有可能的值,例如“月份”字段如果是星號,則錶示在滿足其他字段的製約條件後每月都執行該命令操作。
?逗號(,):可以用逗號隔開的值指定一個列錶範圍,例如,“1,2,5,7,8,9”。
?中杠(-):可以用整數之間的中杠錶示一個整數範圍,例如“2-6”錶示“2,3,4,5,6”。
?正斜綫(/):可以用正斜綫指定時間的間隔頻率,例如“0-23/2”錶示每兩小時執行一次。同時正斜綫可以和星號一起使用,例如*/10,如果用在“分鍾”字段,錶示每十分鍾執行一次。
注意,“日期”和“星期”字段都可以指定哪天執行,如果兩個字段都設置瞭,則執行的日期是兩個字段的並集。
4.crontab示例
#每1分鍾執行一次command
*****command
#每小時的第3和第15分鍾執行
3,15****command
#在上午8點到11點的第3和第15分鍾執行
3,158-11***command
#每隔兩天的上午8點到11點的第3和第15分鍾執行
3,158-11*/2**command
#每個星期一的上午8點到11點的第3和第15分鍾執行
3,158-11**1command
#每晚的21:30執行
3021***command
#每月1、10、22日的4:45執行
4541,10,22**command
#每周六、周日的1:10執行
101**6,0command
#每天18:00至23:00之間每隔30分鍾執行
0,3018-23***command
#每星期六的晚上11:00執行
023**6command
#每一小時執行一次
**/1***command
#晚上11點到早上7點之間,每隔一小時執行一次
*23-7/1***command
#每月的4號與每周一到周三的11點執行
0114*1-3command
Hadoop構建數據倉庫實踐 下載 mobi epub pdf txt 電子書大數據的聖經,夠我啃的,希望自己能天天進步。
評分內容詳細實用,值得推薦!
評分學技術的,一般說,這個書很新的
評分感覺還挺好,等忙完這一陣係統的學習下。
評分書質量挺好的,快遞挺快的,接下來可以慢慢看瞭,挺好的
評分想看看這塊兒的東西,熟悉個概念
評分很好。。。。。。。。。
評分還沒看,大緻看瞭一下,很基礎,我喜歡
評分書很厚,不知道現在hadoop用的人多嗎?而且,還會有下一版本嗎?。
Hadoop構建數據倉庫實踐 pdf epub mobi txt 電子書 下載