1. 实验内容
1.某公司需要将各地分公司的客户信息进行汇总,现在已经搜集到两个分公司的客户列表:
两个文件的格式一致,包含以下字段:
“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为你的姓名的拼音首字母
(2)字段格式:
字段 | 格式 | 示例 |
---|---|---|
customer_id | 8位长字符串,不足8位的在客户号前补0 | 00000001 |
full_name | 字符串,首字母大写, | San Zhang |
字符串,小写 | zhang.san@xxxx.xxx | |
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 | 2019-11-21 03:49 |
2.将客户基本信息(customer_id,full_name,email,phone)导入客户数据库表
3.地理信息(country,city,district)去重后导入xml,json格式文件
根据以上需求,完成以下任务:
任务一: 数据分析,列出数据字段问题描述
任务二:使用Kettle开发数据转换,完成数据导入、转换与导出
2. 任务一解答:
数据分析,列出数据字段问题描述
字段 | 问题描述 | 示例 |
---|---|---|
customer_id | 该字段不足8位,以及类型不是字符串 | 1(Integer) |
first_name | 存在首字母没有大写及全名大写且需要与lastname合并 | Mary;JOHN |
last_name | 存在首字母没有大写及全名大写且需要与firstname合并 | Smith;FARNSWORTH |
存在大写 | JOHN.FARNSWORTH | |
postal_code | 类型不为字符串 | 400044(Integer) |
addressinfo | 需要按;进行对字符串拆分,及字符串里面存在错误字符“台湾国家” | 41ElAltoParkway;Maharashtra;Parbhani;India;country:taiwan |
phone | 第一位存在0以及特殊字符+ | 0135534;+132424 |
create_date | 时间格式为年/月/日 | 2022/11/2 |
last_update | 时间格式为年/月/日 | 2022/11/2 |
3. 任务二解答:
3.1 总体设计
3.2 步骤设计
customer_info_12文本导入(输入步骤:文本文件导入)
文件
字段
字符串操作(转换步骤:字符串操作)
拆分addressinfo字段(转换步骤:拆分字段)
字符串替换(转换步骤:字符串转换 进行利用正则表达式)
连接姓名字段(转换步骤:concat fields)
利用ID去除重复记录(转换步骤:去除重复记录)
这里可以先对ID进行排序然后再去重
排序
去重
字段选择及修改日期格式(转换步骤:字段选择)
字段选择
> 修改日期格式
文本文件输出(输出步骤:文本文件输出)
客户数据表输出(输出步骤:表输出)
新建数据库连接
选择数据库字段(customer_id,full_name,email,phone)
对地理信息进行xml、json输出(步骤输出)
地理信息去重(转换步骤:去除重复记录)
xml输出
json输出
3.3 成果展示
执行情况
执行结果
文本文件输出
客户数据表输出
xml地理输出
json文件输出
4. 工程附件
链接:https://pan.baidu.com/s/1vP2AYSapsxOBS3G3s3ugDw?pwd=n5tn
提取码:n5tn