利用informatica向导开发Mapping

上传人:ldj****22 文档编号:35604701 上传时间:2018-03-18 格式:PDF 页数:16 大小:426.97KB
返回 下载 相关 举报
利用informatica向导开发Mapping_第1页
第1页 / 共16页
利用informatica向导开发Mapping_第2页
第2页 / 共16页
利用informatica向导开发Mapping_第3页
第3页 / 共16页
利用informatica向导开发Mapping_第4页
第4页 / 共16页
利用informatica向导开发Mapping_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《利用informatica向导开发Mapping》由会员分享,可在线阅读,更多相关《利用informatica向导开发Mapping(16页珍藏版)》请在金锄头文库上搜索。

1、利用 informatica 向导开发 Mapping 利用 informatica 向导开发 Mapping 作者:杨波 QQ:414792994 利用 Informatica PowerCenter 的 Designer 开发 mapping 的方式有多种,最常用的方式 是直接 create;另外一种方式是利用 Designer 提供的向导功能。informatica 内置了完成几种 最常用的功能的向导模式,利用向导模式,可以很快的开发一个 mapping,这样,可以大大提 高开发的效率。在这儿,我将对这几种向导做一个介绍。 Informatica 一共提供了两种方法的向导:Getting

2、 started 和 Slowly changing dimensions (缓慢变化维) ,其中第一个方法又提供了两种类型:Single Pass Through Mapping 和 Slow Growing Target;而 Slowly changing dimensions 类型提供了 3 种类型,下面,我对每一种类 型做具体的介绍 方式一:Getting started方式一:Getting started 一Single Pass Through Mapping(单个穿过的 Maping) 一Single Pass Through Mapping(单个穿过的 Maping) Get

3、ting started 类型的向导提供的 Single Pass Through Mapping 方法是一种最简单的方 式,翻译过来的意思是简单的单个穿过的 Maping,它的作用能完成一个最基本的功能,也就 是一个最简单 mapping 的功能,将源表的数据直接抽取到目标表中,它一共用了 4 个控件, 在向导过程中,只要指定源,目标就可以了。 制作过程: 第一步:鼠标单击菜单 mappingswizardsGetting Started 第二步:出现向导窗口,如下,这儿要求输入 Mapping 的名字,类型选择 Single Pass Through Mapping,点下一步。 第三步:出

4、现选择源表和目标表的窗口,在 Select Souce Table 下的下拉菜单选择要使 用的源表,在 New Target Table 下的输入筐中输入目标表名 第四步:点击完成后,工作取中出现生成好的 Mapping,如下。 这种方式很适合初学者学习。 二Slow Growing Target(目标缓慢增长) 二Slow Growing Target(目标缓慢增长) Slow Growing Target 方式完成的功能是这样的:从数据源向目标表插数,只插入数据源 原来没有的记录或者变化了的记录,对于变化了的数据,生成一条新的记录出入目标表中, 可以用一个字段为标准比较源表和目标表, 也可

5、以以几个或全部字段为标准比较, 只要有目 标和源表不一样的记录就插入到目标表中去,目标表永远增长。 制作过程: 第一步:在上个向导的第二步中 type 选择 slowly growing targets,出现下面的界面,选择 源表,输入目标表的名字,然后下一步 第二步: 出现如下窗口, 在下面窗口的左面是目标表的字段, 选择左面的字段点击 add按按纽,在 Logical Key Fields 就出现字段将作为逻辑主健,源表和目标表将以这些字段为 标准进行比较(如下面将以 name 字段为准,进行比较,如果源表字段和目标字段中的 name 值相同,就不插入,如果在目标字段中没有发现源表中有的

6、name 值,就插入到目标表中) 第三步:点击完成,informatica 自动生成如下的 Mapping 这个 Mapping 的实现原理是这样的:首先目标表中得增加一个作为主键的字段(如 PM_PRIMARYKEY) ,作为辅助主键。从源表中取一条记录,然后利用 lookup 控件在目标 表中查找该记录,然后输出 PM_PRIMARYKEY 字段,可以发现,如果 lookup 找到这条记 录,则 PM_PRIMARYKEY 输出具体值,如果没有找到给记录,则 PM_PRIMARYKEY 输出 为 null,下一步中 EXPRESSION 控件中,根据 PM_PRIMARYKEY 的值是否为

7、 null,,生成 一个判断这条记录是否插入到目标表的标志字段(newFlag), 利用后面的 Filter 控件根据此标生成辅助主键生成标志字段从目标表查找 过滤不需插入的记录志字段过滤掉不应插入的记录, ,用 Seq_generator 控件生成 PM_PRIMARYKEY 字段的值, 插入到目标表 方式二:缓慢变化维方式方式二:缓慢变化维方式 缓慢变化维方式提供了另外一种功能更为强大的向导方式,缓慢变化维: slowly changing dimensions,一种最常用的数据仓库加载方式,可以很灵活的,根据对历史数据不同 的处理方式,实现数据仓库数据的加载。 缓慢变化维的实现原理,采用

8、的是数据加载规则中的全表比对方式。在ETL 过程中, 抽取所有源数据,并进行相应规则转换,完成后先不插入目标,而对每条数据进行目标表比 对。根据主键值进行插入与更新的判定,目标表已存在该主键值的,表示该记录已有,并进 行其余字段比对,如有不同,进行Update 操作,如目标表没有存在该主键值,表示该记录 还没有,即进行Insert操作。通过全表比对,感知数据的变化,并进行相应的处理。 一全覆盖,保持最新数据(一全覆盖,保持最新数据(keep most recent values in target) 这种方式目标数据库只保存最新的信息(如客户的余额信息,本文档以客户的余额信 息为例),不保存历

9、史记录。如果有新的记录,则插入到目标表中.即如果有新的客户产生, 则将这条信息插入到目标表中,如果是客户的余额发生了变化,就将目标表的数据update 制作过程: 第一步: 鼠标单击菜单 mappingswizardsSlowly Changing Dimensions,出现向导过程, 在输入 Mapping 的名称, 并选择缓慢变化维的类型, 在这儿我们选择 Type 1 Dimension-keep most recent values in targe,然后下一步。 第二步:在这儿选择源表,并输入目标表的名称,在这儿我们输入 TESTYB_1 第三步:Target Field Selec

10、tion,源表字段选择,选择逻辑主键和比较的字段,逻辑主键用 来表明源表和目标表的记录是否代表同一个客户,可以是单主键,也可以是复合主键。比较 的字段用来比较同一个客户的其他信息是否发生变化了,如果变化了,就 update 目标表数 据。 然后单击完成。 第四步 生成的 Mapping 如下图 过程分析:这个 Mapping 和上面介绍的 Slow Growing Target 原理很相似,只是在 Slow Growing Target 的基础上增加了数据更新的功能,而不是和 Growing Garget 一样保存历史数据。 Mapping 中和 Slow Growing Target 不同的

11、是: 表达式控件中增加了表明客户的其它信息 是否变化的一个 ChangedFlag 字段,如果这个字段为真,则这条数据将要进行 update,否则 newFlag 为真,进行 insert 二全历史记录(二全历史记录(Type 2 Dimension - keep a full history of changes in the target) ) 全历史记录是缓慢变化维中最为强大的一种加载方式, 这种方式保留历史记录, 它将可 以完全实现覆盖方式能实现的加载方式, 且可以实现对数据的历史记录, 可以记录下每一个 数据的细微变化。通过比对,如发现数据仓库中当前数据已为旧数据,则对当前已有记录进

12、 行旧数据标记,主键值不变,同时把修改过的数据作为新的一条数据插入,并赋予新的代理 主键值; 如发现有新数据则把新数据加载到数据仓库中, 并赋予新的代理主键值。 通俗地说, 就是指对于源表中的同一条数据,目标(数据仓库)中会根据变化保留下多条,即记录下每 次的变化,并对最新的一条进行标记,还可以记录数据的变化时间。 这中方法有分为3种类型:版本号方式、标志方式及时戳方式。 全历史记录的制作向导,前面几个步骤与覆盖方式相同,不在赘述,当选择完逻辑主键 与比对字段后,继续下一步。将在下面的窗口中选择类型: 1 Keep the version number in separate column.(

13、版本号方式) 2 Mark the currrent dimension record (标志方式) 3 Mark the dimension records with their effective date(时戳方式) 1版本号方式版本号方式(目标表需要一个字段目标表需要一个字段 PM_VERSION_NUMBER 来记录版本,数值最大的为最新版本来记录版本,数值最大的为最新版本) Mapping如下 -第一次跑披后(源表两条数,目标表开始为空) 源表 目标表 -将源表GRAGE值改为100,然后第二次跑披,得到目标表如下 可以看见PM_PRIMARYKEY值加1了,PM_VERSION_

14、NUMBER版本号变为1,。它的 操作方式为,为每条记录预留1000 个版本空间,对于不同的两个用户,其进入数据库 后代理主键的相差值将是1000,而中间的这些值,是留给每条纪录的版本空间 2标志方式(目标表需要一个字段 PM_CURRENT_FLAG 用做当前最新标志) (目标表需要一个字段 PM_CURRENT_FLAG 用做当前最新标志) Mapping如下 -第一次跑披后(源表两条数,目标表开始为空) 源表 目标表 -将源表 GRAGE 值改为 100,然后第二次跑披,得到目标表如下 目标表同一个用户的 PM_CURRENT_FLAG 变为 1,表明是最新记录原来的记录变为 0 了,

15、表明是历史数据。MAPPING 中用到了三个 update strategy 控件,一个用来插入新用户记录, 一个用来插入老用户变化了的记录,另一个将目标表中 PM_CURRENT_FLAG 为 1 改为 0 3时戳方式(需要 PM_BEGIN_DATE,PM_END_DATE 记录进入数据库时间和最后保留时间PM_BEGIN_DATE,PM_END_DATE 记录进入数据库时间和最后保留时间) Mapping 如下 -第一次跑披后(源表两条数,目标表开始为空) 源表 目标表 -将源表 GRAGE 值改为 100,然后第二次跑披,得到目标表如下 可以看见第一次跑披时,PM_GEGIN_DATE

16、 记录了数据进入数据库的日期,当数据发生改 变的时候,出入一条新的数据,同是用 PM_END_DATE 记录数据最后的变化时间, 可以 发现,只要 PM_END_DATE 为空的就表明是最新记录。MAPPING 中用到了三个 update strategy 控件,一个用来插入新用户记录,一个用来插入老用户变化了的记录,另一个用来 修改 PM_END_DATE 三记录最新纪录及上一次历史(Type 3 Dimension - keep the current and previous values in the target) 三记录最新纪录及上一次历史(Type 3 Dimension - keep the current and previous values in the target) 如果说keep most recent values in target(全覆盖,保持最新数据)是一种极端,它使的目 标数据库数据量最少;全历史记录(Type 2 Dimension

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号