1、1 概述本文基于 Mapping Architect for Visio ,在 Informatica 上实现工作流的批量设计,实现历史数据初始化抽取,当然也可以做复杂的工作流批量设计,本文仅仅介绍源表和目标表表结构不同的批量开发。软件版本:visio2010,Informatica9.5.12 业务需求目标表名和源表表名不同,字段名也不同。目标表名 目标表字段 源表表名 源表字段 取数逻辑RCVBL_AMT_ID_P RCVBL_AMT_ID 直抽CALC_ID_P CALC_ID 直抽AMT_TYPE_P AMT_TYPE 直抽ETL_TIME SYSTEM_ID SYTEM_SOR dw
2、h_arc_a_tSYTEM_PARC_A_SPRC_AMT_ID_P PRC_AMT_ID 直抽PRC_SNAP_ID_P PRC_SNAP_ID 直抽CALC_ID_P CALC_ID 直抽ETL_TIME SYSTEM_ID SYTEM_SOR dwh_arc_b_tSYTEM_PARC_B_S3 Mapping Architect for Visio 安装与配置3.1 安装在 windowns 下双击 Informatica 安装文件下的sourceclientsPowerCenterClientvisio VisioCOMAddinSetup.msi,按照向导安装即可。注意记住安装路
3、径,如 C:InformaticaInformatica Mapping Template。注,安装后可能需要在 visio 中设置宏信任。3.2 配置配置安装路径(如上述 C:InformaticaInformatica Mapping Template)下的 Configurations.xml 中的 JAVA_HOME 和 MAPFWK_HOME 参数,分别指向 jdk 路径和 Informatica 的 MappingSDK 路径,实例如下:注:Informatica 也有自带 jdk,故 JAVA_HOME 可以设置为C:Informatica9.5.1clientsjava。4 工
4、作流批量开发4.1 开发模板1. 开发一个 mapping2. 将 mapping 导出成 xml 文件3. 双击 Mapping Architect for Visio 安装后的路径里面的MappingTemplate.vst,打开 Informatica visio 模板4. 点击“加载项”-“Informatica:基于映射 XML 创建模板” ,打开m_dwh_arc_a_t.XML 文件5. 双击源表,将“Transformation Name”和“Source Table”用参数替换,如$source$,如图替换前:替换后:6. 双击目标表,将“Transformation Nam
5、e”和“Tource Table”用参数替换,如$target$,如图替换前:替换后:7. 双击 Rule_1,点击“全部删除”将原先规则全部删除;点击“新建规则”选择“所有端口” ,如图:删除规则:设置规则:最后结果:8. 双击 Rule_2,点击“全部删除”将原先规则全部删除;点击“新建规则”选择“已命名的端口” ,输入“起始端口名称”和“结束端口名称”的参数,这是为解决源表和目标表字段名称不同而设置参数,如分别为$start_port$和$end_port$如图:设置规则:最后结果:9. 验证模板,点击“加载项”-“Informatica:验证映射模板” 4.2 发布模板1. 点击“加载
6、项”-“Informatica:发布模板” ,输入“m” ,保存,生成m.xml 的模板文件,和 m_param.xml 的参数文件。4.3 修改参数文件1 打开参数文件 m_param.xml,每个 MAPPING 属性会对应生成一个 mapping,添加所有需要的表,对应的参数使用对应的值替换,如下图:替换前:替换后:注意:$start_port$后的 VALUE 是源表所属的字段,$end_port$后的 VALUE为目标表所属的字段,两者的字段顺序即为抽取数据对应的字段顺序,字段之间以英文逗号分割。4.4 源表和目标表导出将源表和目标表导出成 XML,并存放在 Mapping Arch
7、itect for Visio 安装后路径下的 tabledefs 文件夹下,如 C:InformaticaInformatica Mapping Templatetabledefs。4.5 导入模板1 打开 designer,点击“映射”-“导入映射模板” ,注意原先为开发模板做的 mapping 删除掉,否则后面会提示 mapping 已经存在。2 选择模板文件 m.xml,点击“下一步”3 点击“使用现有参数文件” ,选择上面修改的参数文件 m_param.xml,点击“下一步”4 继续点击“下一步” ,在弹出导出源和目标定义选项界面选择“是” 5 选中使用生成工作流向导,然后继续点击“
8、下一步”6 选中包含不可重用,然后继续点击“下一步”7 配置好集成服务、源表数据源、目标表数据源,然后继续点击“下一步” ,注意源表数据源、目标表数据源需要在 workflow 中先创建。8 确定配置信息,如果需要修改可以直接在本界面修改,然后点击下一步9 点击完成,Ctrl+s 进行保存,创建完成。附录 使用 oracle 生成 mapping 参数信息如果表纵多,手工生成映射很麻烦,可以使用 oracle 生成,本附录介绍一种。1. 创建表 MAPPING_TABLE 和 MAPPING_TABLE_COL,分别用于存储表映射和字段的映射关系,如下图表映射关系表 MAPPING_TABLE:字段映射关系表 MAPPING_TABLE_COL:2. 将抽取的源表、目标表、字段映射整理好,填入对应的两种表中,如图表映射关系表 MAPPING_TABLE:字段映射关系表 MAPPING_TABLE_COL:注意:以下排序号也可以,但是排序号必须是唯一的, 3. 执行脚本生成 mapping 参数信息,注意脚本中的 test 对应 Informatica 中的文件夹名称,可按照实际修改,其他脚本无需修改4. 将脚本执行结果拷贝到参数文件中即可完成参数文件修改。附件 oracle 建表语句附件 oracle 生成参数语句