1、InformaticaPowercenter基础开发实例Informatica-Powercenter基础开发实例Infa开发实例1实例:客户维表抽取(dim_customer)1.1数据库配置信息1.1.1数据源数据库类型oracle服务器IP10.1.0.112访问IP访问用户系统性质xxx系统数据库数据库名称(SID)用户名密码OracledevAbcAbc1.1.2目标库数据库类型oracle服务器IP10.1.0.113访问IP访问用户系统性质数据仓库数据库数据库名称(SID)用户名密码OracledevDWDW1.2详细设计1.2.1基础信息目标位置:数据仓库实现目标:抽取客户维表
2、数据进入数据仓库供BIEE平台展现功能要求:目标表名:dim_customer来源表:Hz_Parties、hz_cust_accounts数据筛选条件:数据更新频率:每月1.2.2口径说明字段名字段类型字段描述数据源字段转换规则备注row_idnumber序号market_codevarchar2(50)市场编码market_namevarchar2(100)市场名称customer_codevarchar2(50)客户编码hz_cust_accountsaccount_numbercustomer_namevarchar2(200)客户名称Hz_Partiesparty_name取数规则:
3、select rownum,hca.account_number,ap.party_name from Hz_Parties ap, hz_cust_accounts hca where ap.party_id = hca.party_idETL说明:Mapping:M_DIM_CUSTOMER_IncWorkflow:WF_DIM_CUSTOMER_Inc更新方式:全量抽取1.3抽取步骤1.3.1定义源1.打开Designer,选择“源-从数据库导入”,导入源表结构2.选择“源-从数据库导入”后出现如下提示框,若未配置源数据库的odbc,则需要先配置,可点击如下图的“”进行配置3.在弹出的O
4、DBC中,选择系统DSN,添加按钮,选择想为其安装数据源的驱动程序4.这里我们选择oracle in oraclient10g_home1,弹出如下框,进行配置,tns service name为本机配置的tns连接,这里不再详述5.配置完我们可以点击测试,看是否能连通数据库6.配置完odbc,我们选择相应的odbc连接,输入用户名密码连接erp数据库,也可以在搜索栏填入指定的表,然后选择导入7.用同样的方式,我们将Hz_Parties表导入designer1.3.2定义目标1.导入目标表的方式与导入源的方式基本一致,首先选择“目标-从数据库导入”2.选择我们配置好的odbc,输入目标库的用户
5、名,密码1.3.3创建映射1.选择“映射-创建”,输入映射的名称,映射命名建议以“M_目标表名_Inc”方式来创建2.创建完映射,将刚才导入的两张源表拖入映射工作区中3.将我们需要的字段拖入join组件中,并join组件设置两张表的关联条件4.双击source qualifier组件,在“属性”的sql query中点击“生成sql”,这样在任务抽取的时候,直接根据sql获取源表相应字段的数据,而不是将整张表的所有字段全部加载的informatica中4.生成的sql或者开发人员修改了sql后,可以点击“验证”,看sql的语法是否正确5.将序列号组件和目标表拖入到工作区中,并将我们通过join
6、组件关联后需要的字段与目标表关联,序列号组件中的序列也与目标表中的rowid字段关联,与目标表关联后,整个映射工作也就完成了1.3.4定义任务1.打开workflow工具,选择“工作流-创建”,输入工作流名称,工作流命名建议以“WF_目标表名_Inc”的方式2.点击确定后,工作流创建成功,如下图所示1.3.5创建会话任务1.点击工具栏上的“session”组件按钮进行创建会话任务2.弹出如下选框,选择我们刚刚做好的映射,点击确定3.点击工具栏的“链接”组件,将“启动”与会话任务进行连接4.点击“连接-关系”进行数据库连接的配置 5.点击“新建”,选择oracle然后选择确定6.在弹出的如下框中
7、进行配置,连接字符串中的oracle_crp为服务器上对应的tns连接串7.双击会话任务,在映射选项中进行数据源和目标的配置8.在连接类型中选择我们配置好的数据源,源和目标的数据源都要一一配置,如下图9.目标表配置中,target load type属性中我们一般选择normal选项,bulk有时候会报错,对于维表的抽取,我们一般采用全量的方式抽取,所以勾选truncate target table属性1.3.6监控工作流1.工作流及会话任务创建完成后,在工作流空白工作区右键-启动工作流2.启动workflow monitor,可以监控工作流的执行情况2实例:收入分析事实表抽取(ft_inco
8、me_structure)2.1数据库配置信息2.1.1数据源数据库类型oracle服务器IP10.0.0.206访问IP访问用户系统性质ERP系统数据库数据库名称(SID)用户名密码Oracledevappsapps2.1.2目标库数据库类型oracle服务器IP10.0.0.207访问IP访问用户系统性质ODS中间库数据库数据库名称(SID)用户名密码OraclehyperionINFO_ODSINFO_ ODS2.2详细设计2.2.1基础信息目标位置:ODS中间库实现目标:抽取收入分析数据进入ODS中间库功能要求:目标表名:MT_INCOME_STRUCTURE来源表:Ra_Custom
9、er_Trx_AllRa_Customer_Trx_Lines_AllRA_CUST_TRX_LINE_GL_DIST_ALLHz_PartiesHZ_CUST_ACCOUNTSgl_code_combinationsFND_FLEX_VALUE_SETSFND_FLEX_VALUES_VLmtl_system_items_b数据筛选条件:数据更新频率:每月2.2.2口径说明字段名字段类型字段描述数据源字段转换规则备注MONTH_IDNUMBER月份RA_CUST_TRX_LINE_GL_DIST_ALLgl_dateto_char(gl_date, YYYYMM)ORG_IDNUMBER组织
10、gl_code_combinationssegment1PRODUCT_IDNUMBER产品mtl_system_items_bsegment1ACCOUNT_IDNUMBER科目gl_code_combinationssegment3CUSTOMER_IDNUMBER客户HZ_CUST_ACCOUNTSaccount_numberINDEX_VALUENUMBER指标值RA_CUST_TRX_LINE_GL_DIST_ALLamount取数规则:select rac.account_number customer_id, to_char(gd.gl_date, YYYYMM) month_i
11、d, gcc.segment1 org_id, gcc.segment3 account_id, msi.segment1 product, sum(gd.amount) data_value from Ra_Customer_Trx_All ct, Ra_Customer_Trx_Lines_All ctl, RA_CUST_TRX_LINE_GL_DIST_ALL gd, Hz_Parties hp, HZ_CUST_ACCOUNTS RAC, gl_code_combinations gcc, FND_FLEX_VALUE_SETS FFS, FND_FLEX_VALUES_VL FFV
12、, mtl_system_items_b msi where ct.customer_trx_id = ctl.customer_trx_id and gd.customer_trx_id = ct.customer_trx_id and gd.customer_trx_line_id = ctl.customer_trx_line_id and hp.party_id = rac.party_id and ct.bill_to_customer_id = rac.cust_account_id and gd.account_class = REV and gd.amount is not n
13、ull and gd.amount 0 and gcc.code_combination_id = gd.code_combination_id AND gcc.chart_of_accounts_id = 50368 and FFS.FLEX_VALUE_SET_ID = 1014869 and FFV.FLEX_VALUE_SET_ID = FFS.FLEX_VALUE_SET_ID and FFV.Flex_Value = gcc.segment3 and substr(ffv.FLEX_VALUE, 1, 1) = 6 and msi.organization_id = 81 and
14、msi.inventory_item_id = ctl.inventory_item_id group by rac.account_number, to_char(gd.gl_date, YYYYMM), gcc.segment1, gcc.segment3, msi.segment1;ETL说明:Mapping:M_ MT_INCOME_STRUCTURE_IncWorkflow:WF_ MT_INCOME_STRUCTURE_Inc更新方式:第一次全量抽取,之后每月增量抽取2.3抽取步骤2.3.1定义源1.由于抽取任务涉及源表过多,关联关系复杂,并且已经写出数据的sql口径,我们直接获取sql语句生成的数据即可,点击“源-创建”,输入创建表的名称2.双击我们创建出来的表,添加表字段2.3.2定义目标参照1.3.2,导入后如图所示2.3.3创建映射1.参照1.3.3的方式创建映射2.在source qualifier中的写入我们写好的sql口径2.3.4定义任务参照1.3.42.3.5创建会话任务参照1.3.52.3.6监控工作流参照1.3.6