练习一: Expression组件
4描述
– 将原始客户信息记录转换成合格标准的数据倒入到暂存区。
– 源表:
• customer_east.txt
• customer_west.txt
• customer_central.txt
– 目标:
• TDBU.STG_CUSTOMERS
4要点
– 将源表的姓与名合并至目标一个字段
– 性别转换
– 电话号码转换
– 将源表的年龄按段值范围进行分组
1.1 练习描述
Expression 组件使用练习
将原始客户信息记录转换成合格标准的数据倒入到暂存区。
要转换的规则有:
1、 姓与名合并为姓名;
2、 电话号码转换成易读格式的电话号码,如:(466) 766-283;
3、 性别转换,将 F 转换成 FEMALE、 M 转换成MALE、其它转换成UNK;
4、 年龄分段, 20 岁以下、 20~29、 30~39、 40~49、 50~60、 60 岁以上;
1.2. 实现技术
Mapping 设计:
1、 将不合格的客户信息过滤: Filter 组件;
CUSTOMER_NO != 99999 OR ISNULL(CUSTOMER_NO)
2、 将客户信息按要求进行转换: Expression 组件;
1) 姓与名合并为姓名;
FIRSTNAME || ' ' || LASTNAME
2) 电话号码转换成易读格式的电话号码;
'(' || SUBSTR(TO_CHAR(PHONE_NUMBER),1 ,3) || ') ' ||
SUBSTR(TO_CHAR(PHONE_NUMBER),4, 3) || '-' ||
SUBSTR(TO_CHAR(PHONE_NUMBER),7, 4)
3) 性别转换;
DECODE(GENDER, 'M', 'MALE',
'F', 'FEMALE',
'UNK')
4) 年龄分段;
DECODE(TRUE,
AGE < 20, 'LESS THAN 20',
AGE >= 20 AND AGE <= 29, '20 TO 29',
AGE >= 30 AND AGE <= 39, '30 TO 39',
AGE >= 40 AND AGE <= 49, '40 TO 49',
AGE >= 50 AND AGE <= 60, '50 TO 60',
AGE > 60, 'GREATER THAN 60' )
技术要点:
1、 数据转换定义;
2、 函数的使用;
3、 文本文件数据导入;
4、 文件列表装载;
5、 FTP 的使用;
从文件导入数据源
从数据库导入 目标表
编辑 表达式
FIRSTNAME || '' || LASTNAME
'(' || SUBSTR(TO_CHAR(PHONE_NUMBER),1 ,3) || ') ' ||
SUBSTR(TO_CHAR(PHONE_NUMBER),4, 3) || '-' ||
SUBSTR(TO_CHAR(PHONE_NUMBER),7, 4)
DECODE(GENDER, 'M', 'MALE',
'F', 'FEMALE',
'UNK')
等价于
IIF(GENDER='M','MALE',IIF(GENDER='F','FAMALE','UNK'))
DECODE(TRUE,
AGE < 20, 'LESS THAN 20',
AGE >= 20 AND AGE <= 29, '20 TO 29',
AGE >= 30 AND AGE <= 39, '30 TO 39',
AGE >= 40 AND AGE <= 49, '40 TO 49',
AGE >= 50 AND AGE <= 60, '50 TO 60',
AGE > 60, 'GREATER THAN 60' )
发现 有些 没有对应上
发现 还有些没有 对应上
创建 session 任务 S_M_EMPLOYEE
创建工作流