本次将用PowerCenter工具,转换oracle的数据到mysql表中。其中包括资料库的创建,ETL过程设计、workflow设计及运行。
任务思路:将oracle中 testmib下表stu1中的stuid开平方根,转换到mysql的test下表stu2中。
1.测试数据准备
stu1表创建表语句以及表中的数据如下:
转换之前,mysql的test数据库下表stu2结构和stu1是一致的,并且是空表
希望转换之后的数据如下:
2.配置PowerCenter
2.1 新建Repository Service
2.2 新建PowerCenter集成服务
2.3 Repository Manager设计
1.启动客户端Repository Manager
2.添加新建的配置域
在上图左边栏空白处右击选择配置域
3.添加成功后双击进行连接,填写在设置集成服务时所填写的用户名和密码
4.连接成功后,选择创建,创建文件夹,该步骤是必须的,后续一切操作都在该文件下进行,输入名称,确定即可
2.4 Design设计
1.启动PowerCenter Designer客户端
2.点击工具,选择Source Analyzer,数据源导入界面,导入oracle源表STU1
3.选择Target Designer,进入目标表设计界面,导入MySQL目标表stu2
由于stu2是mysql数据库的,如果是mysql社区版的,powercenter不支持mysql社区版,支持企业版,但是也可以通过配置ODBC驱动来连接MySQL社区版。
4.点击Mapping Designer,进入Mapping设计界面
将数据源表结构STU1拖入Mapping Designer界面,此时会要求输入Mapping的name,随便取个名字就行,此处我用的是mibtest1;将目标表结构stu2也拖入Mapping设计界面;点击工具栏上的f(x)选项,添加表达式组件。
5.双击f(x)组件,进入端口界面,添加两行数据
6.将SQ_STU1中的STUID拖拽到表达式组件中的STUID,将表达式组件中的STUID_OUT拖拽到目标表STU2的STUID
7.在Mapping设计界面空白处右击鼠标,选择自动链接
点击确定后
该图的意思表示,STU1中的STUID经过表达式求平方根后,在导入STU2表中,而STUNAME和STUSEX都不经过任何修改直接导入STU2表中
进行保存
2.5 Workflow设计
1.启动PowerCenter Workflow Manager客户端
2.连接到存储库后,新建立一个工作流,选择在designer中设置的映射
3.完成后,看到如下界面
4.配置数据源和目标数据源
5.双击刚创建的session,点击映射,进入映射界面,设置源数据表的数据库可目标表的数据库连接
6.点击保存
至此,一个完整的ETL过程设计完毕,剩下的只需运行Workflow就行,在workflow designer界面空白处右击,选择启动工作流。
7.开始运行之后,会自动进入Workflow Monitor界面
Running表示运行中,如果成功就会显示succeeded,失败就显示failed
2.6 数据转换结果
为了验证是否转换成功,进入mysql查看转换后导入的数据