本书以Kettle实现ETL流程为目标,将ETL知识点与任务相结合,配套真实案例,深入浅出地介绍了ETL数据整合与处理的相关内容。全书共8章,第1章介绍了ETL概念和ETL工具,让读者在了解ETL相关的概念后,立刻上手ETL工具Kettle;第2~6章介绍了Kettle工具转换相关的组件,包括源数据获取、记录处理、字段处理、高级转换、迁移和装载等内容,内容与ETL流程匹配,能帮助读者快速掌握ETL;第7章介绍了Kettle工具任务的相关组件,能够帮助读者串联不同的任务,以及实现调度的功能;第8章介绍了无人售货机ETL项目,通过项目案例的形式,帮助读者将所学知识融会贯通。
本书采用了以任务为导向的教学模式,按照解决实际任务的工作流程路线,逐步展开介绍相关的理论知识点,推导生成可行的解决方案,最后落实在任务实现环节。
书中案例全部源于企业真实项目,可操作性强,引导读者融会贯通,并提供源代码等相关学习资源,帮助读者快速掌握ETL数据整合与处理相关技能。
王雪松,佛山职业技术学院,计算机应用专业,教授。主编规划教材6部,发表专业学术论文30余篇。
张良均,广东泰迪智能科技股份有限公司董事长,高级信息系统项目管理师,广东省工业与应用数学学会常务理事,中国信访大数据学术与应用研究联盟副理事长,“泰迪杯”数据挖掘挑战赛发起人。华南师范大学、中南财经政法大学、广东工业大学、西安理工大学、广西科技大学、重庆交通大学、湖北工程学院等兼职教授或兼职硕导。近5年,在国内外重要学术刊物上发表论文10余篇;主导编写图书专著26部,承担国家级项目1项,省部级项目6项。获得SAS、SPSS数据挖掘认证及Hadoop开发工程师证书,具有信访、电力、电信、银行、制造企业、电子商务和电子政务的项目经验和行业背景。
第 1章 开启ETL之旅 1
任务1.1 认识ETL 1
1.1.1 了解ETL 1
1.1.2 选择ETL工具 4
任务1.2 配置Kettle运行环境 7
1.2.1 安装JDK 8
1.2.2 安装MySQL数据库 9
1.2.3 配置Kettle 10
任务1.3 熟悉Kettle基本操作 11
1.3.1 认识Kettle界面 11
1.3.2 新建转换与任务 17
1.3.3 运行与查看结果面板 20
小结 22
课后习题 22
第 2章 源数据获取 23
任务2.1 创建数据库连接 23
2.1.1 建立数据库连接 23
2.1.2 设置参数 24
2.1.3 测试和浏览数据库连接结果 26
2.1.4 建立/停止共享数据库连接 27
任务2.2 表输入 28
2.2.1 建立表输入转换工程 28
2.2.2 设置参数 29
2.2.3 预览结果数据 32
任务2.3 CSV文件输入 32
2.3.1 建立CSV文件输入转换工程 32
2.3.2 设置参数 33
2.3.3 预览结果数据 35
任务2.4 Excel输入 36
2.4.1 建立Excel输入转换工程 36
2.4.2 设置参数 37
2.4.3 预览结果数据 44
任务2.5 生成记录 44
2.5.1 建立生成记录转换工程 45
2.5.2 设置参数 45
2.5.3 预览结果数据 47
任务2.6 生成随机数 47
2.6.1 建立生成随机数转换工程 47
2.6.2 设置参数 48
2.6.3 预览结果数据 49
任务2.7 获取系统信息 49
2.7.1 建立获取系统信息转换工程 50
2.7.2 设置参数 50
2.7.3 预览结果数据 51
小结 51
课后习题 52
第3章 记录处理 53
任务3.1 排序记录 53
3.1.1 建立排序记录转换工程 53
3.1.2 设置参数 54
3.1.3 预览结果数据 56
任务3.2 去除重复记录 56
3.2.1 建立去除重复记录转换工程 56
3.2.2 设置参数 57
3.2.3 预览结果数据 59
任务3.3 替换NULL值 59
3.3.1 建立替换NULL值转换工程 59
3.3.2 设置参数 60
3.3.3 预览结果数据 62
任务3.4 过滤记录 62
3.4.1 建立过滤记录转换工程 62
3.4.2 设置参数 63
3.4.3 预览结果数据 67
任务3.5 值映射 67
3.5.1 建立值映射转换工程 67
3.5.2 设置参数 68
3.5.3 预览结果数据 69
任务3.6 字符串替换 70
3.6.1 建立字符串替换转换工程 70
3.6.2 设置参数 70
3.6.3 预览结果数据 72
任务3.7 字符串操作 72
3.7.1 建立字符串操作转换工程 72
3.7.2 设置参数 73
3.7.3 预览结果数据 74
任务3.8 分组 74
3.8.1 建立分组转换工程 75
3.8.2 设置参数 76
3.8.3 预览结果数据 78
小结 78
课后习题 79
第4章 字段处理 80
任务4.1 字段选择 80
4.1.1 建立字段选择转换工程 80
4.1.2 设置参数 81
4.1.3 预览结果数据 85
任务4.2 增加常量 86
4.2.1 建立增加常量转换工程 86
4.2.2 设置参数 87
4.2.3 预览结果数据 88
任务4.3 将字段值设置为常量 88
4.3.1 建立将字段值设置为常量转换工程 89
4.3.2 设置参数 89
4.3.3 预览结果数据 90
任务4.4 剪切字符串 91
4.4.1 建立剪切字符串转换工程 91
4.4.2 设置参数 92
4.4.3 预览结果数据 93
任务4.5 拆分字段 93
4.5.1 建立拆分字段转换工程 93
4.5.2 设置参数 94
4.5.3 预览结果数据 96
任务4.6 数值范围 96
4.6.1 建立数值范围转换工程 97
4.6.2 设置参数 97
4.6.3 预览结果数据 99
任务4.7 计算器 99
4.7.1 建立计算器转换工程 99
4.7.2 设置参数 100
4.7.3 预览结果数据 101
任务4.8 增加序列 102
4.8.1 建立增加序列转换工程 102
4.8.2 设置参数 103
4.8.3 预览结果数据 105
小结 105
课后习题 105
第5章 高级转换 107
任务5.1 记录集连接 107
5.1.1 建立记录集连接转换工程 107
5.1.2 设置参数 109
5.1.3 预览结果数据 110
任务5.2 多路数据合并连接 111
5.2.1 建立多路数据合并连接转换工程 111
5.2.2 设置参数 112
5.2.3 预览结果数据 114
任务5.3 单变量统计 115
5.3.1 建立单变量统计转换工程 115
5.3.2 设置参数 116
5.3.3 预览结果数据 117
任务5.4 公式 118
5.4.1 建立公式转换工程 118
5.4.2 设置参数 119
5.4.3 预览结果数据 120
任务5.5 利用Janino计算Java表达式 120
5.5.1 建立利用Janino计算Java表达式转换工程 121
5.5.2 设置参数 122
5.5.3 预览结果数据 123
任务5.6 JavaScript代码 123
5.6.1 建立JavaScript代码转换工程 123
5.6.2 设置参数 124
5.6.3 预览结果数据 127
任务5.7 设置变量 128
5.7.1 建立设置变量转换工程 128
5.7.2 设置参数 130
5.7.3 预览结果数据 131
任务5.8 获取变量 131
5.8.1 建立获取变量转换工程 131
5.8.2 设置参数 132
5.8.3 预览结果数据 133
小结 133
课后习题 133
第6章 迁移和装载 135
任务6.1 表输出 135
6.1.1 建立表输出转换工程 135
6.1.2 设置参数 136
6.1.3 预览结果数据 139
任务6.2 插入/更新 139
6.2.1 建立插入/更新转换工程 140
6.2.2 设置参数 140
6.2.3 预览结果数据 143
任务6.3 Excel输出 143
6.3.1 建立Excel输出转换工程 143
6.3.2 设置参数 143
6.3.3 预览结果数据 148
任务6.4 文本文件输出 148
6.4.1 建立文本文件输出转换工程 148
6.4.2 设置参数 149
6.4.3 预览结果数据 153
任务6.5 SQL文件输出 153
6.5.1 建立SQL文件输出转换工程 153
6.5.2 设置参数 153
6.5.3 预览结果数据 156
小结 156
课后习题 157
第7章 任务 158
任务7.1 开始 158
7.1.1 建立开始任务工程 158
7.1.2 设置参数 159
7.1.3 运行任务 160
任务7.2 转换 161
7.2.1 建立转换任务工程 162
7.2.2 设置参数 162
7.2.3 运行任务 166
任务7.3 添加文件到结果文件中 167
7.3.1 建立添加文件到结果文件中任务工程 167
7.3.2 设置参数 167
7.3.3 运行任务 168
任务7.4 发送邮件 169
7.4.1 建立发送邮件任务工程 169
7.4.2 设置参数 170
7.4.3 运行任务 174
任务7.5 成功 175
7.5.1 建立成功任务 175
7.5.2 设置参数 176
7.5.3 运行任务 176
任务7.6 检查表是否存在 177
7.6.1 建立检查表是否存在任务工程 177
7.6.2 设置参数 177
7.6.3 运行任务 178
任务7.7 SQL 179
7.7.1 建立SQL任务工程 179
7.7.2 设置参数 179
7.7.3 运行任务 180
任务7.8 检查列是否存在 181
7.8.1 建立检查列是否存在任务工程 181
7.8.2 设置参数 181
7.8.3 运行任务 183
任务7.9 检查一个文件是否存在 183
7.9.1 建立检查一个文件是否存在任务工程 183
7.9.2 设置参数 184
7.9.3 运行任务 184
任务7.10 检查多个文件是否存在 185
7.10.1 建立检查多个文件是否存在任务工程 185
7.10.2 设置参数 185
7.10.3 运行任务 186
小结 187
课后习题 187
第8章 无人售货机项目实战 188
任务8.1 了解无人售货机项目背景与目标 188
8.1.1 了解项目背景 188
8.1.2 熟悉项目目标 189
8.1.3 熟悉数据字段 189
任务8.2 分组聚合客户订单 192
8.2.1 分析任务数据需求 192
8.2.2 熟悉任务流程 193
8.2.3 实现聚合客户订单 193
任务8.3 计算各商品销售金额 197
8.3.1 分析任务数据需求 197
8.3.2 熟悉任务流程 197
8.3.3 实现各商品销售金额计算 198
任务8.4 统计各售货机日销售金额 202
8.4.1 分析任务数据需求 202
8.4.2 熟悉任务流程 202
8.4.3 实现各售货机销售金额统计 203
任务8.5 整理各售货机销售情况 207
8.5.1 分析任务数据需求 208
8.5.2 熟悉任务流程 208
8.5.3 实现各售货机销售情况整理 209
小结 216
课后习题 216