目录
前言
(免责声明=-=)自己做的,所以可能会有问题,还望指出(改过后会实时更新),同样方法不止博主的一种,有很多,大家仁者见仁(博主自己的方法感觉有点笨重,博主正在尝试学习和找到更加好的方法,找到后会更新的,同时后面也会更新说一下每一步究竟干了啥),最后如果想要ktr工程文件的,私信博主,有问题的也同样可以私信,点个赞谢谢了。
对于任务二,采用了两种方法,主要是针对Taiwan这个地区字段的处理,方法一是将country下的Taiwan改为了China(Taiwan),而方法二是将conntry下的Taiwan改为了China,将district改为了Taiwan,city顺次改下去。我建议大家用方法一就OK了,简单且没问题,方法二有点复杂且可能会有拆分错误。
实验内容
1.某公司需要将各地分公司的客户信息进行汇总,现在已经搜集到两个分公司的客户列表:
customer_info_1.txt customer_info_2.txt
两个文件的格式一致,包含以下字段:
"customer_id": 客户号
"first_name": 客户名
"last_name": 客户姓
"email": 客户电邮地址
"postal_code":客户邮编
"addressinfo":客户地址 (地址格式:stree;district;city;country)
"phone": 客户电话
"create_date": 客户信息创建时间
"last_update":客户信息最后修改时间
公司要求将两个分公司汇报的名单进行汇总到一个文件,新的客户信息文件的格式要求如下:
1.文件格式:
使用;(分号)对字段进行分隔,文件名为abc_customer_info.txt
注意:abc为你的姓名的拼音首字母,如zhangsan的文件名为:zs_customer_info.txt.
2.字段格式:
字段 | 格式 | 示例 |
customer_id | 8位长字符串,不足8位的在客户号前补0 | 00000001 |
full_name | 字符串,首字母大写, <firstname lastname> | San Zhang |
| 字符串,小写 | |
postal_code | 字符串,仅包含数字 | 400044 |
address | 字符串,客户所在的街道地址 | 128 South Daxuecheng Road |
district | 字符串,客户所在地区域 |
|
city | 字符串,客户所在地城市 | Chongqing |
country | 字符串,客户所在地国家 | 中国/China |
phone | 字符串,客户联系电话,按规则进行号码规整:第一位不是0,且不包含非数字字符 | 13902333333 |
create_date | 时间日期格式:yyyy-MM-dd HH:mm | 2019-11-21 03:49 |
last_update | 时间日期格式:yyyy-MM-dd HH:mm |
|
3.将客户基本信息(customer_id,full_name,email,phone)导入客户数据库表
4.地理信息(country,city,district)去重后导入xml,json格式文件
根据以上需求,完成以下任务:
任务一: 数据分析,列出数据字段问题描述
字段 | 问题描述 | 示例 |
|
|
|
任务二:使用Kettle开发数据转换,完成数据导入、转换与导出
任务一解答:
字段 | 问题描述 | 示例 |
customer_id | 长度不足8位,且两个文件存在重复 | 1 |
create_date | 格式为yyyy/MM/dd HH:mm | 2014/9/25 22:31 |
last_update | 格式为yyyy/MM/dd HH:mm | 2014/9/25 22:31 |
phone | 存在+和0开头 | +705814003527 |
| 存在字母大写情况 | WILLIAM.SATTERFIELD@sakilacustomer.org |
first_name | 存在字母大小写问题 | ROBERT |
last_name | 存在字母大小写问题 | smith |
addressinfo | 由Address,district,city,country以;分隔开来的,Taiwan地区的字段存在着错误,Taiwan是China的一部分 | 53 Idfu Parkway;Nantou;Nantou;Taiwan |
任务二解答:
方法一:
(1)总体设计
(2)步骤设计
2.1 文本文件输入
2.2去除重复记录(有一条重复哦)
2.3字符串操作
2.4拆分字段
2.5字符串替换
2.6合并字符串
2.7文本文件输出
2.8数据库表输出
记得先启动你的mysql服务,这里和实验一中的导出数据库表类似,不清楚就去看实验一
2.9去重操作
2.10xml output操作
2.11jison output操作
方法二:
(1) 总体设计
(2)步骤设计
2.1 文本文件输入
2.2去除重复记录(有一条重复哦)
2.3字符串操作
2.4拆分字段
2.5合并字段
2.6字符串替换
2.7拆分字段
2.8字段选择
2.9合并字段
2.10文本文件输出
2.11数据库表输出
记得先启动你的mysql服务,这里和实验一中的导出数据库表类似,不清楚就去看实验一
2.12去重操作
2.13xml output操作
2.14jison output操作
3.结果展示
结果展示的是方法二的结果
工程文件