[目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案
第一部分:開始
1???????? ETL入門
1.1?? OLTP和數(shù)據(jù)倉庫對比
1.2?? ETL是什么
1.2.1????????? ETL解決方案的演化過程
1.2.2????????? ETL基本構(gòu)成
1.3?? ETL、ELT和EII
1.3.1????????? ETL
1.3.2????????? EII:虛擬數(shù)據(jù)整合
1.4?? 數(shù)據(jù)整合面臨的挑戰(zhàn)
1.4.1????????? 方法論:敏捷BI
1.4.2????????? ETL設(shè)計
1.4.3????????? 獲取數(shù)據(jù)
1.4.4????????? 數(shù)據(jù)質(zhì)量
1.5?? ETL工具的功能
1.5.1????????? 鏈接
1.5.2????????? 獨立平臺
1.5.3????????? 數(shù)據(jù)規(guī)模
1.5.4????????? 設(shè)計靈活性
1.5.5????????? 復(fù)用性
1.5.6????????? 擴展性
1.5.7????????? 數(shù)據(jù)轉(zhuǎn)換
1.5.8????????? 測試和調(diào)試
1.5.9????????? 血統(tǒng)和影響分析
1.5.10????? 日志和審計
1.6?? 小結(jié)
2???????? Kettle基本概念
2.1?? 設(shè)計原則
2.2?? Kettle涉及模塊
2.2.1????????? 轉(zhuǎn)換
2.2.2????????? 作業(yè)
2.2.3????????? 轉(zhuǎn)換或作業(yè)的元數(shù)據(jù)
2.2.4????????? 數(shù)據(jù)庫連接
2.2.5????????? 工具
2.2.6????????? 資源庫
2.2.7????????? 虛擬文件系統(tǒng)
2.3?? 參數(shù)和變量
2.3.1????????? 定義變量
2.3.2????????? 明明參數(shù)
2.3.3????????? 使用變量
2.4?? 可視化編程
2.4.1????????? 開始
2.4.2????????? 創(chuàng)建新的步驟
2.4.3????????? 放在一起
2.5?? 小潔
3???????? 安裝和配置
3.1?? Kettle軟件概覽
3.1.1????????? 集成開發(fā)環(huán)境:Spoon
3.1.2????????? 命令行啟動:Kitchen和Pan
3.1.3????????? 作業(yè)服務(wù)器:Carte
3.1.4????????? Enar.bat和encr.sh
3.2?? 安裝
3.2.1????????? Java環(huán)境
3.2.2????????? 安裝Kettle
3.3?? 配置
3.3.1????????? 配置文件和.Kettle目錄
3.3.2????????? 用于啟動Kettle的Shell腳本
3.3.3????????? 管理JDBC驅(qū)動
3.4?? 小結(jié)
4???????? ETL示例解決方案——SaKila
4.1?? Sakila
4.1.1????????? Sakila示例數(shù)據(jù)庫
4.1.2????????? 租賃業(yè)務(wù)的星型模型
4.2?? 預(yù)備知識和一些基礎(chǔ)的Spoon技巧
4.2.1????????? 安裝ETL解決方案
4.2.2????????? Spoon使用
4.3?? ETL實例解決方案
4.3.1????????? 生成靜態(tài)維度
4.3.2????????? 循環(huán)加載
4.4?? 小結(jié)
?
第二部分:ETL
5???????? ETL子系統(tǒng)
5.1?? 34種子系統(tǒng)介紹
5.1.1????????? 抽取
5.1.2????????? 清洗和更正數(shù)據(jù)
5.1.3????????? 數(shù)據(jù)發(fā)布
5.1.4????????? 管理ETL環(huán)境
5.2?? 小結(jié)
6???????? 數(shù)據(jù)抽取
6.1?? Kettle數(shù)據(jù)抽取概覽
6.1.1????????? 文件抽取
6.1.2????????? 數(shù)據(jù)庫抽取
6.1.3????????? Web數(shù)據(jù)抽取
6.1.4????????? 基于流的和實時的抽取
6.2?? 處理ERP和CRM系統(tǒng)
6.2.1????????? ERP挑戰(zhàn)
6.2.2????????? Kettle ?ERP插件
6.2.3????????? 處理SAP數(shù)據(jù)
6.2.4????????? ERP和CDC問題
6.3?? 數(shù)據(jù)剖析
6.4?? CDC:變更數(shù)據(jù)捕獲
6.4.1????????? 基于源數(shù)據(jù)的CDC
6.4.2????????? 基于觸發(fā)器的CDC
6.4.3????????? 基于快照的CDC
6.4.4????????? 基于日志的CDC
6.4.5????????? 哪個CDC方案更適合你
6.5?? 發(fā)布數(shù)據(jù)
6.6?? 小結(jié)
?
7???????? 清洗和校檢
7.1?? 數(shù)據(jù)清洗
7.1.1????????? 數(shù)據(jù)清洗步驟
7.1.2????????? 使用參照表
7.1.3????????? 數(shù)據(jù)校驗
7.2?? 錯誤處理
7.2.1????????? 處理過程錯誤
7.2.2????????? 轉(zhuǎn)換錯誤
7.2.3????????? 處理數(shù)據(jù)(校驗)錯誤
7.3?? 審計數(shù)據(jù)和過程質(zhì)量
7.4?? 數(shù)據(jù)排重
7.4.1????????? 去除完成重復(fù)的數(shù)據(jù)
7.4.2????????? 不完全重復(fù)問題
7.4.3????????? 設(shè)計排查重復(fù)記錄的轉(zhuǎn)換
7.5?? 腳本
7.5.1????????? 公式
7.5.2????????? Java腳本
7.5.3????????? 用戶自定義Java表達式
7.5.4????????? 正則表達式
7.6?? 小結(jié)
8???????? 處理維度表
8.1?? 管理各種鍵
8.1.1????????? 管理業(yè)務(wù)鍵
8.1.2????????? 生成代理鍵
8.2?? 加載難度表
8.2.1????????? 雪花維度表
8.2.2????????? 星型維度表
8.3?? 緩慢變更維度
8.3.1????????? 緩慢變更維類型
8.3.2????????? 類型1的緩慢變更維
8.3.3????????? 類型2的緩慢變更維
8.3.4????????? 其他類型的緩慢變更維
8.4?? 更多維度
8.4.1????????? 生成維(Generated Dimensions)
8.4.2????????? 雜項維度(Junk Dimensions)
8.4.3????????? 遞歸層次
8.5?? 小結(jié)
9???????? 加載事實表
9.1?? 批量加載
9.1.1????????? STDIN和FIFO
9.1.2????????? Kettle批量加載
9.1.3????????? 批量加載一般要考慮的問題
9.2?? 維度查詢
9.2.1????????? 維護參照完整性
9.2.2????????? 代理鍵管道
9.2.3????????? 遲到數(shù)據(jù)
9.3?? 處理事實表
9.3.1????????? 周期快照和累積快照
9.3.2????????? 面向狀態(tài)的事實表
9.3.3????????? 加載周期快照表
9.3.4????????? 加載累積快照表
9.3.5????????? 加載面向狀態(tài)事實表
9.3.6????????? 加載聚集表
9.4?? 小結(jié)
10???? 處理OLAP數(shù)據(jù)
10.1???? OLAP的價值和挑戰(zhàn)
10.1.1????? OLAP存儲類型
10.1.2????? OLAP在系統(tǒng)中的位置
10.1.3????? Kettle OLAP選項
10.2???? Mondrian
10.3???? XML/A服務(wù)器
10.4???? Palo
10.4.1????? 建立Palo連接
10.4.2????? Palo架構(gòu)
10.4.3????? 讀Palo數(shù)據(jù)
10.4.4????? 寫Palo數(shù)據(jù)
10.5???? 小結(jié)
?
第三部分:管理和部署
11???? ETL開發(fā)生命期
11.1???? 解決方案設(shè)計
11.1.1????? 好習(xí)慣和壞習(xí)慣
11.1.2????? ETL流設(shè)計
11.1.3????? 可重用性和可維護性
11.2???? 敏捷開發(fā)
11.3???? 測試和調(diào)試
11.3.1????? 測試活動
11.3.2????? ETL測試
11.3.3????? 調(diào)試
11.4???? 解決方案文檔化
11.4.1????? 為什么實際情況下文檔很少
11.4.2????? Kettle的文檔功能
11.4.3????? 生成文檔
11.5???? 小結(jié)
12???? 調(diào)度和監(jiān)控
12.1???? 調(diào)度
12.1.1????? 操作系統(tǒng)調(diào)度
12.1.2????? 使用Pentaho內(nèi)置的調(diào)度程序
12.2???? 監(jiān)控
12.2.1????? 日志
12.2.2????? 郵件通知
12.3???? 小結(jié)
13???? 版本和移植
13.1???? 版本控制系統(tǒng)
13.1.1????? 基于文件的版本控制系統(tǒng)
13.1.2????? 內(nèi)容管理系統(tǒng)
13.2???? Kettle元數(shù)據(jù)
13.2.1????? Kettle XML元數(shù)據(jù)
13.2.2????? Kettle資源庫元數(shù)據(jù)
13.3???? 管理資源庫
13.3.1????? 導(dǎo)出和導(dǎo)入元數(shù)據(jù)
13.3.2????? 資源庫升級
13.4???? 版本移植系統(tǒng)
13.4.1????? 管理XML文件
13.4.2????? 管理資源庫
13.4.3????? 解決方案參數(shù)化
13.5???? 小結(jié)
?
14???? 血統(tǒng)和審計
14.1???? 批量血統(tǒng)抽取
14.2???? 血統(tǒng)
14.2.1????? 血統(tǒng)信息
14.2.2????? 影響分析信息
14.3???? 日志和操作元數(shù)據(jù)
14.3.1????? 日志基礎(chǔ)
14.3.2????? 日志架構(gòu)
14.3.3????? 日志表
14.4???? 小結(jié)
?
第四部分:性能和擴展性
15???? 性能調(diào)優(yōu)
15.1???? 轉(zhuǎn)換性能:找到最弱的連接
15.1.1????? 通過簡化找到性能瓶頸
15.1.2????? 通過度量值找到性能瓶頸
15.1.3????? 復(fù)制數(shù)據(jù)行
15.2???? 提高性能轉(zhuǎn)換
15.2.1????? 提高讀文本文件的性能
15.2.2????? 寫文本文件時使用延遲轉(zhuǎn)換
15.2.3????? 提高數(shù)據(jù)庫性能
15.2.4????? 數(shù)據(jù)排序
15.2.5????? 減少CPU消耗
15.3???? 提高作業(yè)性能
15.3.1????? 作業(yè)里的循環(huán)
15.3.2????? 數(shù)據(jù)庫連接池
15.4???? 小結(jié)
16???? 并行、集群和分區(qū)
16.1???? 多線程
16.1.1????? 數(shù)據(jù)行分發(fā)
16.1.2????? 記錄行合并
16.1.3????? 記錄行再分發(fā)
16.1.4????? 數(shù)據(jù)流水線
16.1.5????? 多線程的問題
16.1.6????? 作業(yè)中的并行執(zhí)行
16.2???? 使用Carte子服務(wù)器
16.2.1????? 配置文件
16.2.2????? 定義子服務(wù)器
16.2.3????? 遠程執(zhí)行
16.2.4????? 監(jiān)視子服務(wù)器
16.2.5????? Carte安全
16.2.6????? 服務(wù)
16.3???? 集群轉(zhuǎn)換
16.3.1????? 定義一個集群模式
16.3.2????? 設(shè)計集群轉(zhuǎn)換
16.3.3????? 執(zhí)行和監(jiān)控
16.3.4????? 元數(shù)據(jù)轉(zhuǎn)換
16.4???? 分區(qū)
16.4.1????? 定義分區(qū)模式
16.4.2????? 分區(qū)的目標
16.4.3????? 實現(xiàn)分區(qū)
16.4.4????? 內(nèi)部變量
16.4.5????? 數(shù)據(jù)庫分區(qū)
16.4.6????? 集群轉(zhuǎn)換中的分區(qū)
16.5???? 小結(jié)
?
17???? 云計算中的動態(tài)集群
17.1???? 動態(tài)集群
17.1.1????? 建立動態(tài)集群
17.1.2????? 使用動態(tài)集群
17.2???? 云計算
17.3???? EC2
17.3.1????? 如何使用EC2
17.3.2????? 成本
17.3.3????? 自定義AMI
17.3.4????? 打包新AMI
17.3.5????? 中止AMI
17.3.6????? 運行主節(jié)點
17.3.7????? 運行子節(jié)點
17.3.8????? 使用EC2集群
17.3.9????? 監(jiān)控
17.3.10?? 輕量原則和持久性
17.4???? 小結(jié)
18???? 實時數(shù)據(jù)的集合
18.1???? 實時ETL介紹
18.1.1????? 實時處理面臨的挑戰(zhàn)
18.1.2????? 需求
18.2???? 基于流的轉(zhuǎn)換
18.2.1????? 一個基于流的轉(zhuǎn)換實例
18.2.2????? 調(diào)試
18.2.3????? 第三方軟件和實時整合
18.2.4????? Java消息服務(wù)
18.3???? 小結(jié)
?
第五部分:高級主題
19???? Data Vault管理
19.1???? Data Vault模型介紹
19.2???? 你是否需要Data Vault
19.3???? Data Vault組成部分
19.3.1????? 中心表
19.3.2????? 鏈接表
19.3.3????? 附屬表
19.3.4????? Data Vault特點
19.3.5????? 構(gòu)建Data Vault模型
19.4???? 將Sakila的例子轉(zhuǎn)換成Data Vault模型
19.4.1????? Sakila 中心表
19.4.2????? Sakila 鏈接表
19.4.3????? Sakila 附屬表
19.5???? 加載Data Vault模型:簡單的ETL解決方案
19.5.1????? 安裝Sakila Data Vault
19.5.2????? 安裝ETL方案
19.5.3????? 創(chuàng)建一個數(shù)據(jù)庫賬戶
19.5.4????? ETL解決方案的例子
19.5.5????? 加載Data Vault表
19.6???? 從Data Vault模型更新到數(shù)據(jù)集市
19.6.1????? ETL解決方案例子
19.6.2????? dim_actor轉(zhuǎn)換
19.6.3????? dim_customer轉(zhuǎn)換
19.6.4????? dim_film轉(zhuǎn)換
19.6.5????? dim_film_actor_birdge轉(zhuǎn)換
19.6.6????? fact_rental轉(zhuǎn)換
19.6.7????? 加載星型模型里的所的表
19.7???? 小結(jié)
20???? 處理復(fù)雜數(shù)據(jù)格式
20.1???? 非關(guān)系型和非表格型的數(shù)據(jù)格式
20.2???? 非結(jié)構(gòu)化的表格型數(shù)據(jù)
20.2.1????? 多處理值字段
20.2.2????? 處理重復(fù)的字段組
20.3???? 半結(jié)構(gòu)化的和非結(jié)構(gòu)化的數(shù)據(jù)
20.4???? 鍵/值對
20.5???? 小結(jié)
21???? Web Service
21.1???? Web頁面和Web Service
21.2???? 數(shù)據(jù)格式
21.2.1????? XML
21.2.2????? HTML
21.2.3????? JavaScript Object Notation
?
21.3???? XML例子
21.3.1????? XML例子
21.3.2????? 從XML中抽取數(shù)據(jù)
21.3.3????? 生成XML文檔
21.4???? SOAP例子
21.4.1????? 使用”Web服務(wù)查詢”步驟
21.4.2????? 直接訪問SOAP服務(wù)
21.5???? JSON例子
21.5.1????? Freebase項目
21.5.2????? 使用Kettle抽取Freebase數(shù)據(jù)
21.6???? RSS
21.6.1????? RSS結(jié)構(gòu)
21.6.2????? kettle對RSS的支持
21.7???? 小結(jié)
22???? Kettle集成
22.1???? Kettle API
22.1.1????? LGPL協(xié)議
22.1.2????? Kettle ?Java ?API
22.2???? 執(zhí)行存在的轉(zhuǎn)換和作業(yè)
22.2.1????? 執(zhí)行一個轉(zhuǎn)換
22.2.2????? 執(zhí)行一個作業(yè)
22.3???? 應(yīng)用程序中嵌入Kettle
22.3.1????? Pentaho報表
22.3.2????? 把數(shù)據(jù)放到轉(zhuǎn)換里
22.3.3????? 動態(tài)轉(zhuǎn)換
22.3.4????? 動態(tài)模版
22.3.5????? 動態(tài)作業(yè)
22.3.6????? 在Kettle里執(zhí)行動態(tài)ETL
22.3.7????? Result
22.3.8????? 替換元數(shù)據(jù)
22.4???? OEM版本和二次發(fā)布版本
22.4.1????? 創(chuàng)建PDI的OEM版本
22.4.2????? Kettle的二次布(Forking)
22.5???? 小結(jié)
23???? 擴展Kettle
23.1???? 插件架構(gòu)
23.1.1????? 插件類型
23.1.2????? 架構(gòu)
23.1.3????? 前提
23.2???? 轉(zhuǎn)換步驟架構(gòu)
23.2.1????? StempMetaInterface
23.2.2????? StepDataInterface
23.2.3????? StepDialoginterface
23.2.4????? StepInterface
23.3???? 用戶自定義Java類步驟
23.3.1????? 傳遞元數(shù)據(jù)
23.3.2????? 訪問輸入和字段
23.3.3????? 代碼片段
23.3.4????? 例子
23.4???? 作業(yè)項插件
23.4.1????? JobEntryInterface
23.4.2????? JobEntryDialogInterface
23.5???? 分區(qū)插件
23.6???? 資源庫插件
23.7???? 數(shù)據(jù)類型插件
23.8???? 小結(jié)
?
?
附錄A Kettle生態(tài)群
附錄B Kettle企業(yè)版特性
附錄C 內(nèi)置的變量和屬性參考
轉(zhuǎn)載于:https://www.cnblogs.com/crsn/p/4602398.html
總結(jié)
以上是生活随笔為你收集整理的[目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: List排序的问题
- 下一篇: 优秀简历要遵循哪些规则