资源描述
Informatica PowerCenter 8.6全量与增量总结太阳团队文档变更记录版本编号变更人变更日期备注V1.0郭鹏飞2014-5-27目 录ETL全量与增量3设置Oracle连接3设置时间变量3ETL全量4整个过程预览42创建一个Mapping43源与目标的导入5导入源5导入目标表64 组建Mapping7打开源节点7插入“表达式组件”7添加字段7添加字段或修改字段类型8添加目标表8添加删除条件9连接目标表9ETL增量10整个过程预览10组建Mapping10添加Lookup Transformation11时间戳的定义11Epression transformation设置12添加Update Strategy Transformation12测试14注意事项全量16全量16注意事项增量17ETL全量与增量设置Oracle连接在oracleproduct10.2.0db_1networkADMIN路径下,双击文件,对oracle连接进行配置。例如:ods = (DESCRIPTION= (FAILOVER = yes) (ADDRESS = (PROTOCOL = TCP)(HOST =10.100.20.11)(PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST =10.100.20.13)(PORT = 1521) (CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = cedb) ) )这个是ODS的连接地址。设置时间变量点击Mapping,选择,在点击。ETL全量ETL全量,即将源库里的数据全部导进目标库,其重要注意的是,可能要添加ETL_DATE这个字段。整个过程预览2创建一个Mapping(1)单击Mapping,点击create这个是给Mapping起名字,起名规则:M_目标表表明。例如:M_ ODS_CE_BORROW_CONTRACT(2)单击Mapping,点击Edit可以修改Mapping名,修改完成之后点击OK3源与目标的导入导入源(Source Analyzer)点击这个按钮在工具栏点击Sources这个按钮点击Import from Datebase点击(如果已有ODBC data source,则直点击进行选择)点击添加,选择Oracle in .(如果要是MySQL的源就选择上面的MySQL ODBC )这里是数据库配置的名字这里是源文件夹中的名字完成后点击OK。输入用户、密码 点击Connect 即可(注:我的ODBC data source:ODS(OraDb10g_home2)是我自己配置的,一般的是ODS(OraDb10g_home1)当其显示Re-connect时,表示连接上了源数据库。展开这两个节点,单击所需要的源表,点击OK即可。导入目标表(Target Designer)点击这个按钮其他的步骤与导入源一直,可参考上边的文档。4 组建Mapping(Mapping Designer)点击这个按钮打开源节点选择这个节点并打开。选择你的源表,点击右键,选择Open.这样源表就会在右边的Designer界面显示了。插入“表达式组件”点击F(x)组件,在右侧Designer界面在单击一下。添加字段将源中的字段全选,拖入表达式组件中。添加字段或修改字段类型有的目标表可能比源表多了一个ETL_DATE,这时候需要我们在Mapping过程的Expression Transformation这个组件,添加一列,命名为ETL_DATE,字段类型 为date/time且只输出(O),在后面条件框里边输入TO_DATE($today,yyyy-mm-dd hh24:mi:ss) 注:$today 是在Mapping中自己定义的时间变量!有的源表与目标表的字段类型不一样,这时候需要我们在Mapping过程的Expression Transformation这个组件中转换一下字段类型。例如:源表中的ahead_time的字段类型是nstring型,而目标中字段类型 为date/time,这时我们需要转换。双击表达式组件,选择Ports页,点击选中ahead_time行,单击复制在点击粘贴单击按钮,在弹出来的对话框内写入to_date(ahead_time,yyyy-mm-dd hh24:mi:ss)输入完成后点击Validate,显示successfully后即转换成功,点击确定-OK-确定即设置成功。添加目标表打开Targets节点,选择目标表。右键-Open,这时右边的Designer界面就会显示目标表。添加删除条件这里Truncate清除表中数据是指清除目标表中的数据,这样从源表过来的数据就不会有重复。双击目标表,选择Properties页,在Pre SQL中添加.Truncate table +目标表表名。连接目标表首先单击表达式组件在菜单栏选择Layout在单击,此时会弹出一个界面。选中目标表,选择Name,点击OK,这样表达式组件就与目标表连接起来了。ETL增量ETL增量,即将源库里的数据更新到目标库中,用Update实现,更新掉原有的旧数据,添加原来没有的新数据。整个过程预览组建Mapping导入源、目标表、表达式组件与全量的过程是一样的,在这里就不详细讲解了。添加Lookup Transformation添加一个Lookup Transformation,选择目标表,删除 除 %ID%以外的列,并且添加一个列%ID1%,并且只为输入(I). 在Condition中添加一个条件 %ID%=%ID1%.时间戳的定义时间戳的定义,即在做更新时,利用Creat_time和Lastupdate或者operate_time作为条件(三者选其一或者其二都可以),来筛选数据。在SQ中Properties的Source Filterz中添加条件,具体如下:双击(TO_DATE(create_date,yyyy-mm-dd hh24:mi:ss) =TO_DATE($start_date,yyyy-mm-dd hh24:mi:ss)and TO_DATE(create_date,yyyy-mm-dd hh24:mi:ss) =TO_DATE($start_date,yyyy-mm-dd hh24:mi:ss)and TO_DATE(OPER_DATE,yyyy-mm-dd hh24:mi:ss) =TO_DATE($start_date,yyyy-mm-dd hh24:mi:ss)AndTO_DATE(create_date,yyyy-mm-dd hh24:mi:ss) =TO_DATE($start_date,yyyy-mm-dd hh24:mi:ss)AndTO_DATE(OPER_DATE,yyyy-mm-dd hh24:mi:ss) =TO_DATE($end_date,yyyy-mm-dd hh24:mi:ss)3. 设定时间参数:参考上文参考上文的 时间变量设置方法。4. 如果是从别的库抽到ODS库,那么我们需要在表达式组件中设置ETL_DATE:TO_DATE($TODAY,YYYY-MM-DD HH24:MI:SS)5. 在表达式组件中设置::LKP.LKPTRANS(字段)。6. Update组件中设置条件:iif(isnulL(字段1),DD_INSERT,DD_UPDATE)7. 在session中查看target中Target load type:是否为Normal8. 在session中查看中依据自己情况选择数据库的链接。数据库的选择。
展开阅读全文