
0人評分過此書
似乎所有人嘴邊都掛著「大數據」這個詞。圍繞大數據這個主題開展的討論幾乎已經完全壓倒了傳統數據倉庫的風頭。某些大數據狂熱者甚至大膽預測,在不久的將來,所有企業數據都將由一個基於Apache Hadoop的系統託管,企業數據倉庫(EDW)終將消亡。無論如何,傳統數據倉庫架構仍在不斷發展演化,這一點不容置疑。一年來,我一直在撰寫相關的文章和部落格,但它真的會消亡嗎?我認為機率很小。實際上,儘管所有人都在討論某種技術或者架構可能會勝過另一種技術或架構,但IBM有著不同的觀點。在IBM,他們更傾向於從「Hadoop與數據倉庫密切結合」這個角度來探討問題,兩者可以說是天作之合。
本書透過簡單而完整的示例,論述了在Hadoop平台上設計和實現數據倉庫的方法。將傳統數據倉庫建模與SQL開發的簡單性與大數據技術相結合,快速、高效地建立可擴展的數據倉庫及其應用系統。
本書共13章,主要內容包括數據倉庫、Hadoop及其生態圈的相關概念,使用Sqoop從關係資料庫全量或增量抽取數據,使用Hive進行數據轉換和裝載處理,使用Oozie調度作業週期性執行,使用Impala進行快速聯機數據分析,使用Hue將數據可視化,以及數據倉庫中的漸變維(SCD)、代理鍵、角色扮演維度、層次維度、退化維度、無事實的事實表、遲到的事實、累積的度量等常見問題在Hadoop上的處理等。
本書適合資料庫管理員、大數據技術人員、Hadoop技術人員、數據倉庫技術人員,也適合高等院校和培訓學校相關專業的師生教學參考。
本書透過簡單而完整的示例,論述了在Hadoop平台上設計和實現數據倉庫的方法。將傳統數據倉庫建模與SQL開發的簡單性與大數據技術相結合,快速、高效地建立可擴展的數據倉庫及其應用系統。
本書共13章,主要內容包括數據倉庫、Hadoop及其生態圈的相關概念,使用Sqoop從關係資料庫全量或增量抽取數據,使用Hive進行數據轉換和裝載處理,使用Oozie調度作業週期性執行,使用Impala進行快速聯機數據分析,使用Hue將數據可視化,以及數據倉庫中的漸變維(SCD)、代理鍵、角色扮演維度、層次維度、退化維度、無事實的事實表、遲到的事實、累積的度量等常見問題在Hadoop上的處理等。
本書適合資料庫管理員、大數據技術人員、Hadoop技術人員、數據倉庫技術人員,也適合高等院校和培訓學校相關專業的師生教學參考。
- 版權訊息
- 作者簡介
- 內容簡介
- 前言
-
第1章 ◄資料倉儲簡介►
-
1.1 什麽是資料倉儲
-
1.1.1 資料倉儲的定義
-
1.1.2 建立資料倉儲的原因
-
-
1.2 操作型系統與分析型系統
-
1.2.1 操作型系統
-
1.2.2 分析型系統
-
1.2.3 操作型系統和分析型系統對比
-
-
1.3 資料倉儲架構
-
1.3.1 基本架構
-
1.3.2 主要資料倉儲架構
-
1.3.3 操作數據存儲
-
-
1.4 抽取-轉換-裝載
-
1.4.1 數據抽取
-
1.4.2 數據轉換
-
1.4.3 數據裝載
-
1.4.4 開發ETL系統的方法
-
1.4.5 常見ETL工具
-
-
1.5 資料倉儲需求
-
1.5.1 基本需求
-
1.5.2 數據需求
-
-
1.6 小結
-
-
第2章 ◄資料倉儲設計基礎►
-
2.1 關係數據模型
-
2.1.1 關係數據模型中的結構
-
2.1.2 關係完整性
-
2.1.3 規範化
-
2.1.4 關係數據模型與資料倉儲
-
-
2.2 維度數據模型
-
2.2.1 維度數據模型建模過程
-
2.2.2 維度規範化
-
2.2.3 維度數據模型的特點
-
2.2.4 星型模式
-
2.2.5 雪花模式
-
-
2.3 Data Vault模型
-
2.3.1 Data Vault模型簡介
-
2.3.2 Data Vault模型的組成部分
-
2.3.3 Data Vault模型的特點
-
2.3.4 Data Vault模型的構建
-
2.3.5 Data Vault模型實例
-
-
2.4 數據集市
-
2.4.1 數據集市的概念
-
2.4.2 數據集市與資料倉儲的區別
-
2.4.3 數據集市設計
-
-
2.5 資料倉儲實施步驟
-
1.定義範圍
-
2.確定需求
-
3.邏輯設計
-
4.物理設計
-
5.裝載數據
-
6.訪問數據
-
7.管理維護
-
-
2.6 小結
-
-
第3章 ◄Hadoop生態圈與資料倉儲►
-
3.1 大數據定義
-
1.Volume——生成和存儲的數據量大
-
2.Velocity——數據產生和處理速度快
-
3.Variety——數據源和數據種類多樣
-
4.Veracity——數據的真實性和高質量
-
-
3.2 Hadoop簡介
-
3.2.1 Hadoop的構成
-
3.2.2 Hadoop的主要特點
-
3.2.3 Hadoop架構
-
-
3.3 Hadoop基本組件
-
3.3.1 HDFS
-
3.3.2 MapReduce
-
3.3.3 YARN
-
-
3.4 Hadoop生態圈的其他組件
-
1.Spark Core
-
2.Spark SQL
-
3.Spark Streaming
-
4.MLlib Machine Learning Library
-
5.GraphX
-
-
3.5 Hadoop與資料倉儲
-
3.5.1 關係數據庫的可擴展性瓶頸
-
3.5.2 CAP理論
-
3.5.3 Hadoop資料倉儲工具
-
-
3.6 小結
-
-
第4章 ◄安裝Hadoop►
-
4.1 Hadoop主要發行版本
-
4.1.1 Cloudera Distribution for Hadoop (CDH)
-
4.1.2 Hortonworks Data Platform (HDP)
-
4.1.3 MapR Hadoop
-
-
4.2 安裝Apache Hadoop
-
4.2.1 安裝環境
-
4.2.2 安裝前準備
-
4.2.3 安裝配置Hadoop
-
4.2.4 安裝後配置
-
4.2.5 初始化及運行
-
-
4.3 配置HDFS Federation
-
1.HDFS的兩層結構
-
2.HDFS侷限性
-
3.Federation架構
-
4.Federation配置
-
-
4.4 離線安裝CDH及其所需的服務
-
4.4.1 CDH安裝概述
-
4.4.2 安裝環境
-
4.4.3 安裝配置
-
4.4.4 Cloudera Manager許可證管理
-
-
4.5 小結
-
-
第5章 ◄Kettle與Hadoop►
-
5.1 Kettle概述
-
5.2 Kettle連接Hadoop
-
5.2.1 連接HDFS
-
5.2.2 連接Hive
-
-
5.3 導出導入Hadoop集群數據
-
5.3.1 把數據從HDFS抽取到RDBMS
-
5.3.2 向Hive表導入數據
-
-
5.4 執行Hive的HiveQL語句
-
5.5 MapReduce轉換示例
-
5.6 Kettle提交Spark作業
-
5.6.1 安裝Spark
-
5.6.2 配置Kettle向Spark集群提交作業
-
-
5.7 小結
-
-
第6章 ◄建立資料倉儲示例模型►
-
6.1 業務場景
-
1.操作型數據源
-
2.銷售訂單資料倉儲模型設計
-
-
6.2 Hive相關配置
-
6.2.1 選擇文件格式
-
6.2.2 支持行級更新
-
6.2.3 Hive事務支持的限制
-
-
6.3 Hive表分類
-
1.管理表
-
2.外部表
-
3.分區表
-
-
6.4 向Hive表裝載數據
-
1.向非分區表中裝載數據
-
2.向分區表中裝載數據
-
3.動態分區插入
-
-
6.5 建立數據庫表
-
1.執行下面的SQL語句在MySQL中建立源數據庫表
-
2.執行下面的SQL語句生成源庫測試數據
-
3.執行下面的HiveQL語句在Hive中建立RDS庫表
-
4.執行下面的HiveQL語句在Hive中建立TDS庫表
-
-
6.6 裝載日期維度數據
-
6.7 小結
-
-
第7章 ◄數據抽取►
-
7.1 邏輯數據映射
-
7.2 數據抽取方式
-
1.基於時間戳的CDC
-
2.基於觸發器的CDC
-
3.基於快照的CDC
-
4.基於日誌的CDC
-
-
7.3 導出成文本文件
-
7.4 分布式查詢
-
1.建立Oracle到MySQL的連接
-
2.建立SQL Server到Oracle的連接
-
-
7.5 使用Sqoop抽取數據
-
7.5.1 Sqoop簡介
-
7.5.2 CDH 5.7.0中的Sqoop
-
7.5.3 使用Sqoop抽取數據
-
7.5.4 Sqoop優化
-
-
7.6 小結
-
-
第8章 ◄數據轉換與裝載►
-
8.1 數據清洗
-
1.處理「臟數據」
-
2.數據清洗原則
-
3.數據清洗實例
-
-
8.2 Hive簡介
-
8.2.1 Hive的體系結構
-
8.2.2 Hive的工作流程
-
8.2.3 Hive服務器
-
8.2.4 Hive客戶端
-
-
8.3 初始裝載
-
8.4 定期裝載
-
1.設置支持事務的hive屬性
-
2.設置數據處理時間窗口
-
3.裝載客戶維度表
-
4.裝載產品維度表
-
5.裝載訂單維度表
-
6.裝載銷售訂單事實表
-
7.更新數據處理時間窗口
-
-
8.5 Hive優化
-
1.啟用壓縮
-
2.優化連接
-
3.避免使用order by全局排序
-
4.啟用Tez執行引擎
-
5.優化limit操作
-
6.啟用並行執行
-
7.啟用MapReduce嚴格模式
-
8.使用單一Reduce執行多個Group By
-
9.控制並行Reduce任務
-
10.啟用向量化
-
11.啟用基於成本的優化器
-
12.使用ORC文件格式
-
-
8.6 小結
-
-
第9章 ◄定期自動執行ETL作業►
-
9.1 crontab
-
1.crontab權限
-
2.crontab命令
-
3.crontab文件
-
4.crontab示例
-
5.crontab環境
-
6.重定向輸出郵件
-
7.生成日誌文件
-
-
9.2 Oozie簡介
-
9.2.1 Oozie的體系結構
-
9.2.2 CDH 5.7.0中的Oozie
-
-
9.3 建立定期裝載工作流
-
1.修改資源配置
-
2.啟用Oozie Web Console
-
3.啟動Sqoop的share metastore service
-
4.連接metastore重建sqoop job
-
5.定義工作流
-
6.部署工作流
-
7.建立作業屬性文件
-
8.運行工作流
-
-
9.4 建立協調器作業定期自動執行工作流
-
1.建立協調器作業配置文件
-
2.建立協調器作業屬性文件
-
3.部署協調器作業
-
4.運行協調器作業
-
-
9.5 Oozie優化
-
1.減少給發射器作業分配的資源
-
2.減少給「hive2」發射器作業分配的資源
-
3.利用YARN隊列名
-
4.設置Hive查詢的AppMaster資源
-
5.合併HiveQL腳本
-
6.並行執行多個步驟
-
7.使用Tez計算框架
-
-
9.6 小結
-
-
第10章 ◄維度表技術►
-
10.1 增加列
-
1.修改數據庫模式
-
2.重建Sqoop作業
-
3.修改定期裝載regular_etl.sql文件
-
4.測試
-
-
10.2 維度子集
-
1.建立包含屬性子集的子維度
-
2.建立包含行子集的子維度
-
3.使用視圖實現維度子集
-
-
10.3 角色扮演維度
-
1.修改數據庫模式
-
2.重建Sqoop作業
-
3.修改定期裝載regular_etl.sql文件
-
4.測試
-
5.一種有問題的設計
-
-
10.4 層次維度
-
10.4.1 固定深度的層次
-
10.4.2 遞歸
-
10.4.3 多路徑層次
-
10.4.4 參差不齊的層次
-
-
10.5 退化維度
-
1.退化訂單維度
-
2.修改定期裝載腳本
-
3.測試修改後的定期裝載
-
-
10.6 雜項維度
-
1.忽略這些標誌和指標
-
2.保持事實表行中的標誌位不變
-
3.將每個標誌位放入其自己的維度中
-
4.將標誌位字段存儲到訂單維度中
-
5.使用雜項維度
-
-
10.7 維度合併
-
1.修改資料倉儲模式
-
2.修改定期裝載腳本
-
3.測試修改後的定期裝載
-
-
10.8 分段維度
-
1.年度銷售訂單星型模式
-
2.初始裝載
-
3.定期裝載
-
-
10.9 小結
-
-
第11章 ◄事實表技術►
-
11.1 事實表概述
-
11.2 週期快照
-
1.修改資料倉儲模式
-
2.編寫快照表數據裝載腳本
-
3.修改工作流作業配置文件
-
4.修改協調作業配置文件
-
5.修改協調作業屬性文件
-
6.部署工作流和協調作業
-
7.運行協調作業進行測試
-
-
11.3 累積快照
-
1.修改數據庫模式
-
2.重建Sqoop作業
-
3.修改定期裝載regular_etl.sql文件
-
4.測試
-
-
11.4 無事實的事實表
-
1.建立新產品發佈的無事實的事實表
-
2.初始裝載無事實的事實表
-
3.修改定期裝載腳本
-
4.測試定期裝載
-
-
11.5 遲到的事實
-
1.修改資料倉儲模式
-
2.修改銷售訂單定期裝載腳本
-
3.修改裝載月銷售週期快照事實表腳本
-
4.測試
-
-
11.6 累積度量
-
1.修改模式
-
2.初始裝載
-
3.定期裝載
-
4.測試定期裝載
-
5.查詢
-
-
11.7 小結
-
-
第12章 ◄聯機分析處理►
-
12.1 聯機分析處理簡介
-
12.1.1 概念
-
12.1.2 分類
-
12.1.3 性能
-
-
12.2 Impala簡介
-
1.Impala是什麽
-
2.為什麽要使用Impala
-
3.適合Impala的使用場景
-
4.Impala架構
-
5.開發Impala應用
-
6.Impala與Hadoop生態圈
-
-
12.3 Hive、SparkSQL、Impala比較
-
12.3.1 Spark SQL簡介
-
12.3.2 Hive、Spark SQL、Impala比較
-
12.3.3 Hive、Spark SQL、Impala性能對比
-
-
12.4 聯機分析處理實例
-
1.建立olap庫、表、視圖
-
2.向olap庫表初始裝載數據
-
3.修改銷售訂單定期裝載腳本
-
4.定義OLAP需求
-
5.執行OLAP查詢
-
-
12.5 Apache Kylin與OLAP
-
12.5.1 Apache Kylin架構
-
12.5.2 Apache Kylin安裝
-
-
12.6 小結
-
-
第13章 ◄數據視覺化►
-
13.1 數據視覺化簡介
-
1.數據視覺化的重要性
-
2.數據視覺化的用途
-
3.實施數據視覺化需要考慮的問題
-
4.幾種主要的數據視覺化工具
-
-
13.2 Hue簡介
-
13.2.1 Hue功能快速預覽
-
13.2.2 配置元數據存儲
-
-
13.3 Zeppelin簡介
-
13.3.1 Zeppelin架構
-
13.3.2 Zeppelin安裝配置
-
13.3.3 在Zeppelin中添加MySQL翻譯器
-
-
13.4 Hue、Zeppelin比較
-
1.功能
-
2.架構
-
3.使用場景
-
-
13.5 數據視覺化實例
-
1.Impala查詢
-
2.DB查詢
-
3.建立定期執行銷售訂單示例的ETL工作流
-
-
13.6 小結
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分