作者針對大數(shù)據(jù)問題,分析如何進行大數(shù)據(jù)的導入,如何使用大數(shù)據(jù)工具進行快速的數(shù)據(jù)預處理,以及如何構(gòu)建數(shù)據(jù)倉庫。詳細講解了Kettle工具的使用、數(shù)據(jù)集成、Kettle作業(yè)項設計等。
數(shù)據(jù)預處理是數(shù)據(jù)挖掘中必不可少的關(guān)鍵一步,更是進行數(shù)據(jù)挖掘前的準備工作,一方面保證挖掘數(shù)據(jù)的正確性和有效性;另一方面通過對數(shù)據(jù)格式和內(nèi)容的調(diào)整,使數(shù)據(jù)更符合挖掘的需要。
許桂秋 男,85年出生,計算機學士,工商管理碩士。 2009年-2012年,中國石油天然氣股份有限公司,負責項目管理工作,企業(yè)內(nèi)部高級講師; 2012年-2015年,曙光信息產(chǎn)業(yè)股份有限公司,負責項目管理與企業(yè)內(nèi)部培訓工作,企業(yè)內(nèi)部高級講師; 2016年至今,曙光瑞翼教育合作中心,教學運營總監(jiān),負責各高校合作項目部的具體運營管理及指導工作。
第1章 數(shù)據(jù)預處理概述 1
1.1 數(shù)據(jù)預處理的背景與目的 1
1.1.1 數(shù)據(jù)預處理的背景:數(shù)據(jù)質(zhì)量 1
1.1.2 數(shù)據(jù)預處理的目的 3
1.2 數(shù)據(jù)預處理的流程 3
1.2.1 數(shù)據(jù)清理 3
1.2.2 數(shù)據(jù)集成 5
1.2.3 數(shù)據(jù)變換 6
1.2.4 數(shù)據(jù)歸約 8
1.2.5 數(shù)據(jù)預處理的注意事項 12
1.3 數(shù)據(jù)預處理的工具 12
第2章 Kettle工具的初步使用 14
2.1 Kettle的安裝 14
2.1.1 Java的安裝 14
2.1.2 Kettle的下載安裝與Spoon的啟動 19
2.2 Kettle的使用 19
2.2.1 轉(zhuǎn)換的基本概念 19
2.2.2 第一個轉(zhuǎn)換案例 21
第3章 基于Kettle的數(shù)據(jù)導入與導出 42
3.1 基于文件的數(shù)據(jù)導入與導出 42
3.1.1 文本文件的導入與導出 42
3.1.2 文本文件的導入與導出案例 43
3.1.3 Excel文件的導入與導出 49
3.1.4 Excel文件的導入與導出案例 50
3.1.5 XML文件的導入與導出 57
3.1.6 XML文件的導入與導出案例 57
3.1.7 JSON文件的導入與導出 62
3.1.8 JSON文件的導入與導出案例 62
3.2 基于數(shù)據(jù)庫的數(shù)據(jù)導入與導出 66
3.2.1 關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)導入與導出 67
3.2.2 MySQL數(shù)據(jù)庫的數(shù)據(jù)導入與導出案例 69
3.3 基于Web的數(shù)據(jù)導入與導出 75
3.3.1 HTML數(shù)據(jù)的導入與導出 76
3.3.2 HTML數(shù)據(jù)的導入與導出案例 76
3.3.3 基于HTTP GET請求的導入與導出 80
3.3.4 基于HTTP GET請求的導入與導出案例 80
3.4 基于CDC變更數(shù)據(jù)的導入與導出 83
3.4.1 基于源數(shù)據(jù)的CDC 83
3.4.2 基于源數(shù)據(jù)的CDC案例 84
3.4.3 基于觸發(fā)器的CDC 95
3.4.4 基于觸發(fā)器的CDC案例 95
3.4.5 基于快照的CDC 105
3.4.6 基于快照的CDC案例 105
3.4.7 基于日志的CDC 109
3.4.8 基于日志的CDC案例 109
第4章 數(shù)據(jù)清理 112
4.1 數(shù)據(jù)清理概述 112
4.1.1 常用的數(shù)據(jù)清理步驟 112
4.1.2 字符串清理 113
4.1.3 字段清理 118
4.1.4 使用參照表清理數(shù)據(jù) 125
4.1.5 數(shù)據(jù)校驗 130
4.2 數(shù)據(jù)排重 134
4.2.1 如何識別重復數(shù)據(jù) 135
4.2.2 去除完全重復數(shù)據(jù) 135
4.2.3 去除不完全重復數(shù)據(jù) 136
4.3 使用腳本組件進行數(shù)據(jù)清理 140
4.3.1 使用JavaScript代碼組件清理數(shù)據(jù) 140
4.3.2 使用正則表達式組件清理數(shù)據(jù) 142
4.3.3 使用其他腳本組件清理數(shù)據(jù) 145
第5章 Kettle作業(yè)設計 150
5.1 作業(yè)的概念及組成 151
5.1.1 作業(yè)項 151
5.1.2 跳 152
5.1.3 注釋 152
5.2 作業(yè)的執(zhí)行方式 152
5.2.1 回溯 152
5.2.2 多路徑和回溯 153
5.2.3 并行執(zhí)行 153
5.3 作業(yè)的創(chuàng)建及常用作業(yè)項 154
5.3.1 創(chuàng)建作業(yè) 155
5.3.2 “START”作業(yè)項 155
5.3.3 “作業(yè)”作業(yè)項 156
5.3.4 “轉(zhuǎn)換”作業(yè)項 158
5.4 變量 158
5.4.1 定義變量 159
5.4.2 使用變量 160
5.5 監(jiān)控 161
5.5.1 日志 161
5.5.2 郵件通知 162
5.6 命令行啟動 163
5.7 作業(yè)實驗 165
第6章 構(gòu)建數(shù)據(jù)倉庫 193
6.1 構(gòu)建維度表 193
6.1.1 管理各種鍵 193
6.1.2 維度表的加載 197
6.1.3 緩慢變化維度 198
6.2 構(gòu)建事實表 203
6.2.1 批量加載 203
6.2.2 查找維度 206
6.2.3 事實表的處理 207
第7章 基于Python的數(shù)據(jù)導入與導出 216
7.1 Pandas 216
7.1.1 Series 216
7.1.2 DataFrame 219
7.2 文本文件的導入與導出 220
7.2.1 導入CSV文件 221
7.2.2 導出CSV文件 223
7.2.3 JSON格式數(shù)據(jù)的導入與導出 224
7.3 二進制文件的導入與導出 225
7.4 數(shù)據(jù)庫的導入與導出 226
7.4.1 關(guān)系型數(shù)據(jù)庫的導入與導出 226
7.4.2 非關(guān)系型數(shù)據(jù)庫的導入與導出 227
第8章 基于Python的數(shù)據(jù)整理 231
8.1 合并多個數(shù)據(jù)集 231
8.1.1 使用key進行DataFrame合并 231
8.1.2 使用index進行DataFrame合并 234
8.1.3 沿著橫軸或縱軸串接 235
8.2 數(shù)據(jù)重塑 237
8.2.1 多級索引數(shù)據(jù)的重塑 238
8.2.2 應用pivot方法重塑數(shù)據(jù) 239
8.3 數(shù)據(jù)轉(zhuǎn)換 242
8.3.1 移除重復數(shù)據(jù) 242
8.3.2 利用函數(shù)或映射進行數(shù)據(jù)轉(zhuǎn)換 243
8.3.3 值轉(zhuǎn)換 243
8.3.4 重命名軸索引 244
8.3.5 離散化和面元劃分 245
8.3.6 檢測或過濾異常值 247
8.3.7 排列和隨機采樣 248
8.3.8 計算指標/啞變量 249
參考文獻 253