大數(shù)據(jù)預(yù)處理技術(shù)
作者針對大數(shù)據(jù)問題,分析如何進(jìn)行大數(shù)據(jù)的導(dǎo)入,如何使用大數(shù)據(jù)工具進(jìn)行快速的數(shù)據(jù)預(yù)處理,以及如何構(gòu)建數(shù)據(jù)倉庫。詳細(xì)講解了Kettle工具的使用、數(shù)據(jù)集成、Kettle作業(yè)項(xiàng)設(shè)計等。
數(shù)據(jù)預(yù)處理是數(shù)據(jù)挖掘中必不可少的關(guān)鍵一步,更是進(jìn)行數(shù)據(jù)挖掘前的準(zhǔn)備工作,一方面保證挖掘數(shù)據(jù)的正確性和有效性;另一方面通過對數(shù)據(jù)格式和內(nèi)容的調(diào)整,使數(shù)據(jù)更符合挖掘的需要。
許桂秋 男,85年出生,計算機(jī)學(xué)士,工商管理碩士。 2009年-2012年,中國石油天然氣股份有限公司,負(fù)責(zé)項(xiàng)目管理工作,企業(yè)內(nèi)部高級講師; 2012年-2015年,曙光信息產(chǎn)業(yè)股份有限公司,負(fù)責(zé)項(xiàng)目管理與企業(yè)內(nèi)部培訓(xùn)工作,企業(yè)內(nèi)部高級講師; 2016年至今,曙光瑞翼教育合作中心,教學(xué)運(yùn)營總監(jiān),負(fù)責(zé)各高校合作項(xiàng)目部的具體運(yùn)營管理及指導(dǎo)工作。
第1章 數(shù)據(jù)預(yù)處理概述 1
1.1 數(shù)據(jù)預(yù)處理的背景與目的 1
1.1.1 數(shù)據(jù)預(yù)處理的背景:數(shù)據(jù)質(zhì)量 1
1.1.2 數(shù)據(jù)預(yù)處理的目的 3
1.2 數(shù)據(jù)預(yù)處理的流程 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ù)預(yù)處理的注意事項(xiàng) 12
1.3 數(shù)據(jù)預(yù)處理的工具 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ù)導(dǎo)入與導(dǎo)出 42
3.1 基于文件的數(shù)據(jù)導(dǎo)入與導(dǎo)出 42
3.1.1 文本文件的導(dǎo)入與導(dǎo)出 42
3.1.2 文本文件的導(dǎo)入與導(dǎo)出案例 43
3.1.3 Excel文件的導(dǎo)入與導(dǎo)出 49
3.1.4 Excel文件的導(dǎo)入與導(dǎo)出案例 50
3.1.5 XML文件的導(dǎo)入與導(dǎo)出 57
3.1.6 XML文件的導(dǎo)入與導(dǎo)出案例 57
3.1.7 JSON文件的導(dǎo)入與導(dǎo)出 62
3.1.8 JSON文件的導(dǎo)入與導(dǎo)出案例 62
3.2 基于數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入與導(dǎo)出 66
3.2.1 關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入與導(dǎo)出 67
3.2.2 MySQL數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入與導(dǎo)出案例 69
3.3 基于Web的數(shù)據(jù)導(dǎo)入與導(dǎo)出 75
3.3.1 HTML數(shù)據(jù)的導(dǎo)入與導(dǎo)出 76
3.3.2 HTML數(shù)據(jù)的導(dǎo)入與導(dǎo)出案例 76
3.3.3 基于HTTP GET請求的導(dǎo)入與導(dǎo)出 80
3.3.4 基于HTTP GET請求的導(dǎo)入與導(dǎo)出案例 80
3.4 基于CDC變更數(shù)據(jù)的導(dǎo)入與導(dǎo)出 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ù)校驗(yàn) 130
4.2 數(shù)據(jù)排重 134
4.2.1 如何識別重復(fù)數(shù)據(jù) 135
4.2.2 去除完全重復(fù)數(shù)據(jù) 135
4.2.3 去除不完全重復(fù)數(shù)據(jù) 136
4.3 使用腳本組件進(jìn)行數(shù)據(jù)清理 140
4.3.1 使用JavaScript代碼組件清理數(shù)據(jù) 140
4.3.2 使用正則表達(dá)式組件清理數(shù)據(jù) 142
4.3.3 使用其他腳本組件清理數(shù)據(jù) 145
第5章 Kettle作業(yè)設(shè)計 150
5.1 作業(yè)的概念及組成 151
5.1.1 作業(yè)項(xiàng) 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è)項(xiàng) 154
5.3.1 創(chuàng)建作業(yè) 155
5.3.2 “START”作業(yè)項(xiàng) 155
5.3.3 “作業(yè)”作業(yè)項(xiàng) 156
5.3.4 “轉(zhuǎn)換”作業(yè)項(xiàng) 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è)實(shí)驗(yàn) 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)建事實(shí)表 203
6.2.1 批量加載 203
6.2.2 查找維度 206
6.2.3 事實(shí)表的處理 207
第7章 基于Python的數(shù)據(jù)導(dǎo)入與導(dǎo)出 216
7.1 Pandas 216
7.1.1 Series 216
7.1.2 DataFrame 219
7.2 文本文件的導(dǎo)入與導(dǎo)出 220
7.2.1 導(dǎo)入CSV文件 221
7.2.2 導(dǎo)出CSV文件 223
7.2.3 JSON格式數(shù)據(jù)的導(dǎo)入與導(dǎo)出 224
7.3 二進(jìn)制文件的導(dǎo)入與導(dǎo)出 225
7.4 數(shù)據(jù)庫的導(dǎo)入與導(dǎo)出 226
7.4.1 關(guān)系型數(shù)據(jù)庫的導(dǎo)入與導(dǎo)出 226
7.4.2 非關(guān)系型數(shù)據(jù)庫的導(dǎo)入與導(dǎo)出 227
第8章 基于Python的數(shù)據(jù)整理 231
8.1 合并多個數(shù)據(jù)集 231
8.1.1 使用key進(jìn)行DataFrame合并 231
8.1.2 使用index進(jìn)行DataFrame合并 234
8.1.3 沿著橫軸或縱軸串接 235
8.2 數(shù)據(jù)重塑 237
8.2.1 多級索引數(shù)據(jù)的重塑 238
8.2.2 應(yīng)用pivot方法重塑數(shù)據(jù) 239
8.3 數(shù)據(jù)轉(zhuǎn)換 242
8.3.1 移除重復(fù)數(shù)據(jù) 242
8.3.2 利用函數(shù)或映射進(jìn)行數(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 排列和隨機(jī)采樣 248
8.3.8 計算指標(biāo)/啞變量 249
參考文獻(xiàn) 253