TOP
0
0
2025新年快樂!買書領券省荷包
Kettle構建Hadoop ETL系統實踐(簡體書)
滿額折

Kettle構建Hadoop ETL系統實踐(簡體書)

商品資訊

人民幣定價:79 元
定價
:NT$ 474 元
優惠價
87412
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點:12 點
商品簡介
作者簡介
名人/編輯推薦
目次
相關商品

商品簡介

Kettle是一款國外開源的ETL工具,純Java編寫,無須安裝,功能完備,資料抽取高效穩定。

本書介紹並演示如何用Kettle完成Hadoop資料倉庫上的ETL過程,所有的描繪場景與實驗環境都是基於Linux作業系統的虛擬機器。全書共分10章,主要內容包括ETL與Kettle的基本概念、Kettle安裝與配置、Kettle對Hadoop的支援、建立ETL示例模型、資料轉換與裝載、定期自動執行ETL作業、維度表技術、事實表技術,以及Kettle並行、集群與分區技術。

本書既適合大資料分析系統開發、資料倉庫系統設計與開發、DBA、架構師等相關技術人員閱讀,也適合高等院校和培訓機構人工智能與大資料相關專業的師生參考。


作者簡介

王雪迎 ,畢業於中國地質大學計算機專業,高級工程師,20年資料庫、資料倉庫相關技術工作經驗。先後供職於北京現代商業信息技術有限公司、北京在線九州信息技術服務有限公司、華北計算技術研究所、北京優貝在線網絡科技有限公司,擔任DBA、資料架構師等職位。著有圖書《Hadoop構建資料倉庫實踐》《HAWQ資料倉庫與資料採擷實戰》《SQL機器學習庫MADlib技術解析》《MySQL高可用實踐》。

名人/編輯推薦

Kettle易用性好,編碼工作量小,功能完備,基於Java,允許多執行緒與併發執行以提高效率。本書以CDH作為Hadoop平臺,結合銷售訂單示例,詳細介紹並演示如何使用Kettle完成Hadoop資料倉庫的ETL過程。本書適合大資料分析系統開發、資料倉庫系統設計與開發、DBA、架構師等相關技術人員閱讀。

前 言

2017年我寫了第一本書,名為《Hadoop構建資料倉庫實踐》。那本書詳細地介紹了如何利用Hadoop生態圈元件構建傳統資料倉庫,如使用Sqoop從關係型數據庫全量或增量抽取資料到Hadoop系統、使用Hive進行資料轉換和裝載處理、使用Oozie調度ETL過程自動定時執行等。作為進階,書中還講解了多維資料倉庫技術中的漸變維、代理鍵、角色扮演維度、層次維度、退化維度、無事實的事實表、遲到事實、累計度量等常見問題在Hadoop上的處理方法。所有這些內容都以CDH(Clouderas Distribution Including Apache Hadoop)為運行平臺,並用一個簡單的銷售訂單示例來系統說明。

該書介紹的大部分功能都是通過Hive SQL來實現的,其中有些SQL語句邏輯複雜,可讀性也不是很好。如今四年過去了,技術已經有了新的發展,同時我對Hadoop資料倉庫這個主題也有了新的思考,那就是有沒有可能使用一種GUI(Graphical User Interface,圖形化使用者接口)工具來實現上述所有功能呢?伴隨著尋找答案的過程,經過持續的實踐與總結,於是就有了呈現在讀者面前的這本新書。本書介紹並演示如何用Kettle完成Hadoop資料倉庫的ETL過程。我們仍然以CDH作為Hadoop平臺,沿用相同的銷售訂單示例進行說明,因此可以將本書當作《Hadoop構建資料倉庫實踐》的另一版本。

面對各種各樣的ETL開發工具,之所以選擇Kettle,主要由於它的一些鮮明特性。首先,很明確的一點是,作為一款GUI工具,Kettle的易用性好,編碼工作量最小化。幾乎所有的功能都可以通過使用者接口完成,提高了ETL過程的開發效率。其次,Kettle的功能完備。書中演示所用的Kettle 8.3版本幾乎支援所有常見的資料來源,並能滿足ETL功能需求的各種轉換步驟與作業項。第三,Kettle是基於Java的解決方案,天然繼承了Java的跨平臺性,只要有合適的JVM存在,轉換或作業就能運行在任何環境和平臺之上,真正做到與平臺無關。最後,Kettle允許多執行緒與併發執行,以提高程式執行效率。用戶只需指定執行緒數,其他工作都交給Kettle處理,實現細節完全透明化。

本書內容

全書共分10章。第1章介紹ETL與Kettle的基本概念,如ETL定義、ETL工具、Kettle的設計原則、Kettle元件與功能特性等。第2章講解Kettle在Linux上的安裝配置,還包括安裝Java環境、安裝GNOME Desktop圖形接口、配置中文字元集和輸入法、安裝配置VNC遠端控制等相關細節問題。第3章介紹Kettle對Hadoop的支援,說明如何配置Kettle連接Hadoop集群、Kettle中包含的Hadoop相關的步驟與作業項,演示Kettle導入匯出Hadoop資料、執行MapReduce和Spark作業等。第4章說明貫穿全書的銷售訂單示例的搭建過程。第5章主要講解用Kettle實現各種變換資料捕獲方法,還有Sqoop作業項的使用。第6章說明Kettle的資料轉換與裝載功能,以及在銷售訂單示例上的具體實現。第7章講解Kettle如何支援ETL作業的自動調度,包括使用Oozie和Start作業項的實現。第8、9章詳解多維資料倉庫中常見的維度表和事實表技術,及其Kettle實現。第10章介紹三種與Kettle可擴展性相關的技術,即並行、集群和分區。

資源下載與技術支援

本書配套的資源下載信息,請用微信掃描右邊的二維碼獲取,可按頁面提示,把下載連結轉發到自己的郵箱中下載。如果閱讀過程中發現問題,請聯繫booksaga@163.com,郵件主題為“Kettle構建Hadoop ETL系統實踐”。

讀者物件

本書所有的描繪場景與實驗環境都是基於Linux作業系統的虛擬機器,需要讀者具有一定的Hadoop、資料倉庫、SQL與Linux基礎。本書適合大資料分析系統開發、資料倉庫系統設計與開發、DBA、架構師等相關技術人員閱讀,也適合高等院校和培訓機構人工智能與大資料相關專業的師生教學參考。

致謝

在本書編寫過程中,得到了很多人的幫助與支持。首先要感謝我所在的公司(優貝在線)提供的平臺和環境,感謝同事們工作中的鼎力相助。沒有那裡的環境和團隊,也就不會有這本書。感謝清華大學出版社圖格事業部的編輯們,他們的辛勤工作使得本書得以儘早與讀者見面。感謝CSDN提供的技術分享平臺,給我有一個將博客文章整理成書的機會。最後,感謝家人對我一如既往的支持。由於本人水準有限,書中疏漏之處在所難免,敬請讀者批評指正。





著 者

2021年5月


目次

第1章 ETL與Kettle 1

1.1 ETL基礎 1

1.1.1 資料倉庫架構中的ETL 1

1.1.2 數據抽取 3

1.1.3 資料轉換 5

1.1.4 數據裝載 6

1.1.5 開發ETL系統的方法 6

1.2 ETL工具 7

1.2.1 ETL工具的產生 7

1.2.2 ETL工具的功能 7

1.3 Kettle基本概念 10

1.3.1 Kettle設計原則 11

1.3.2 轉換 12

1.3.3 作業 15

1.3.4 資料庫連接 18

1.3.5 連接與事務 21

1.3.6 中繼資料與資源庫 21

1.3.7 工具 22

1.3.8 虛擬檔案系統 26

1.4 為什麼選擇Kettle 27

1.4.1 主要特性 27

1.4.2 與SQL的比較 27

1.5 小結 30

第2章 Kettle安裝與配置 31

2.1 安裝 31

2.1.1 確定安裝環境 31

2.1.2 安裝前準備 33

2.1.3 安裝運行Kettle 41

2.2 配置 43

2.2.1 設定檔和.kettle目錄 44

2.2.2 用於啟動Kettle程式的shell腳本 48

2.2.3 管理JDBC驅動 49

2.3 使用資源庫 50

2.3.1 Kettle資源庫簡介 50

2.3.2 創建資料庫資源庫 50

2.3.3 資源庫的管理與使用 51

2.4 小結 55

第3章 Kettle對Hadoop的支持 56

3.1 Hadoop相關的步驟與作業項 56

3.2 連接Hadoop 57

3.2.1 連接Hadoop集群 57

3.2.2 連接Hive 63

3.2.3 連接Impala 64

3.2.4 建立MySQL資料庫連接 66

3.3 導入匯出Hadoop集群數據 67

3.3.1 向HDFS導入數據 67

3.3.2 向Hive導入數據 67

3.3.3 從HDFS抽取數據到MySQL 68

3.3.4 從Hive抽取數據到MySQL 70

3.4 執行HiveQL語句 72

3.5 執行MapReduce 72

3.5.1 生成聚合資料集 72

3.5.2 格式化原始Web日誌 77

3.6 執行Spark作業 81

3.6.1 在Kettle主機上安裝Spark用戶端 81

3.6.2 為Kettle配置Spark 81

3.6.3 提交Spark作業 82

3.7 小結 83

第4章 建立ETL示例模型 84

4.1 業務場景 84

4.1.1 操作型資料來源 84

4.1.2 銷售訂單資料倉庫模型設計 85

4.2 Hive相關配置 86

4.2.1 選擇檔案格式 86

4.2.2 選擇表類型 88

4.2.3 支持行級更新 92

4.2.4 Hive事務支援的限制 94

4.3 建立資料庫表 94

4.3.1 來源資料庫表 94

4.3.2 RDS庫表 97

4.3.3 TDS庫表 98

4.4 裝載日期維度數據 100

4.5 小結 103

第5章 數據抽取 104

5.1 Kettle數據抽取概覽 104

5.1.1 文件抽取 105

5.1.2 資料庫抽取 116

5.2 變化資料捕獲 119

5.2.1 基於來源資料的CDC 119

5.2.2 基於觸發器的CDC 125

5.2.3 基於快照的CDC 126

5.2.4 基於日誌的CDC 130

5.3 使用Sqoop抽取資料 132

5.3.1 Sqoop簡介 132

5.3.2 使用Sqoop抽取資料 134

5.3.3 Sqoop優化 137

5.4 小結 138

第6章 資料轉換與裝載 139

6.1 數據清洗 139

6.1.1 處理“髒資料” 139

6.1.2 數據清洗原則 140

6.1.3 資料清洗實例 140

6.2 Hive簡介 146

6.2.1 Hive體系結構 147

6.2.2 Hive工作流程 148

6.2.3 Hive服務器 149

6.2.4 Hive優化 152

6.3 初始裝載 160

6.3.1 系統初始化 162

6.3.2 裝載過渡區 164

6.3.3 裝載維度表 165

6.3.4 裝載事實表 167

6.3.5 設置最後裝載日期 168

6.4 定期裝載 168

6.4.1 設置系統日期 169

6.4.2 裝載過渡區 169

6.4.3 裝載維度表 169

6.4.4 裝載事實表 174

6.4.5 設置最後裝載日期 176

6.5 小結 178

第7章 定期自動執行ETL作業 179

7.1 使用crontab 179

7.1.1 crontab許可權 180

7.1.2 crontab命令 180

7.1.3 crontab文件 181

7.1.4 crontab示例 181

7.1.5 crontab環境 182

7.1.6 重定向輸出 183

7.2 使用Oozie 183

7.2.1 Oozie體系結構 184

7.2.2 CDH 6.3.1中的Oozie 185

7.2.3 建立定期裝載工作流 185

7.2.4 建立協調器作業定期自動執行工作流 197

7.2.5 在Kettle中執行Oozie作業 200

7.2.6 Oozie優化 201

7.3 使用start作業項 202

7.4 小結 203

第8章 維度表技術 205

8.1 增加列 205

8.1.1 修改資料庫模式 206

8.1.2 修改Sqoop作業項 206

8.1.3 修改定期裝載維度表的轉換 207

8.1.4 修改定期裝載事實表的轉換 210

8.1.5 測試 210

8.2 維度子集 211

8.2.1 建立包含屬性子集的子維度 212

8.2.2 建立包含行子集的子維度 214

8.2.3 使用視圖實現維度子集 216

8.3 角色扮演維度 217

8.3.1 修改資料庫模式 217

8.3.2 修改Kettle定期裝載作業 218

8.3.3 測試 220

8.3.4 一種有問題的設計 223

8.4 層次維度 224

8.4.1 固定深度的層次 224

8.4.2 多路徑層次 228

8.4.3 參差不齊的層次 229

8.4.4 遞迴 230

8.5 退化維度 238

8.5.1 退化訂單維度 239

8.5.2 修改定期裝載腳本 241

8.5.3 測試修改後的定期裝載 241

8.6 雜項維度 242

8.6.1 新增銷售訂單屬性雜項維度 245

8.6.2 修改定期裝載Kettle作業 246

8.6.3 測試修改後的定期裝載 247

8.7 維度合併 248

8.7.1 修改資料倉庫模式 249

8.7.2 初始裝載事實表 251

8.7.3 修改定期裝載Kettle作業 253

8.7.4 測試修改後的定期裝載 254

8.8 分段維度 255

8.8.1 年度銷售訂單星型模式 256

8.8.2 初始裝載 258

8.8.3 定期裝載 260

8.9 小結 261

第9章 事實表技術 262

9.1 事實表概述 262

9.2 週期快照 263

9.2.1 修改資料倉庫模式 263

9.2.2 創建快照表資料裝載Kettle轉換 265

9.3 累積快照 267

9.3.1 修改資料庫模式 268

9.3.2 修改增量抽取銷售訂單表的Kettle轉換 270

9.3.3 修改定期裝載銷售訂單事實表的Kettle轉換 270

9.3.4 修改定期裝載Kettle作業 271

9.3.5 測試 274

9.4 無事實的事實表 276

9.4.1 建立新產品發佈的無事實的事實表 277

9.4.2 初始裝載無事實的事實表 278

9.4.3 修改定期裝載Kettle作業 280

9.4.4 測試定期裝載作業 281

9.5 遲到的事實 281

9.6 累積度量 289

9.7 小結 295

第10章 並行、集群與分區 296

10.1 資料分發方式與多執行緒 296

10.2 Carte子服務器 303

10.3 集群轉換 308

10.4 資料庫分區 315

10.5 小結 322

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 412
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區