ETL加载及增量策略.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ETL数据加载及增量策略 本文所提到的数据加载策略为OLTP系统作为源系统,并进行ETL数据加载到OLAP系统中所采用的一般数据加载策略。 根据该方式的特定性,此时ETL数据加载一般存在以下四种方案: 时戳方式 需要在OLTP系统中业务表中统一添加时间字段作为时戳(如表中已有相应的时间字段,可以不必添加),每当OLTP系统中更新修改业务数据时,同时修改时戳字段值。当作ETL加载时,通过系统时间与时戳字段的比较来决定进行何种数据抽取。 优点:ETL系统设计清晰,源数据抽取相对清楚简单,速度快。可以实现数据的递增加载。 缺点:时戳维护需要由OLTP系统完成,需要修改原OLTP系统中业务表结构;且所有添加时戳的表,在业务系统中,数据发生变化时,同时更新时戳字段,需要对原OLTP系统业务操作程序作修改,工作量大,改动面大,风险大。 Informatica8具体做法: 一个原表:主键为:MON 和 KINDID 一个目标表:主键为:KINDID 一个mapping为m_Source_Have_TimetStamp: 具体展开为: FILTRANS组件最关键: 过滤条件是:时间戳字段等于系统时间,或者时间戳字段等于ETL的时间, 或者时间戳字段等于指定的数据。 Look up组件查找是目标表,匹配条件是: update组建最关键: 代码是: iif( isnull(DISTRICTNUM_Tgt),dd_insert, iif((DISTRICTNUM_Tgt != DISTRICTNUM_Src or DISTRICTNAME_Tgt != DISTRICTNAME_Src ), dd_update,dd_reject ) ) 日志表方式 在OLTP系统中添加系统日志表,当业务数据发生变化时,更新维护日志表内容,当作ETL加载时,通过读日志表数据决定加载那些数据及如何加载。 优点:不需要修改OLTP表结构,源数据抽取清楚,速度较快。可以实现数据的递增加载。 缺点:日志表维护需要由OLTP系统完成,需要对OLTP系统业务操作程序作修改,记录日志信息。日志表维护较为麻烦,对原有系统有较大影响。工作量较大,改动较大。有一定风险。 Informatica8具体做法: 一个原表:主键为:ID 一个目标表:主键为:ID 在OLTP系统中建设一个触发器: 触发器记录的是增加和修改和删除业务数据的时间和操作类型。 代码为: create or replace trigger a_log_trigger before update or insert or delete on a for each row declare optype char(1); id varchar2(10); begin id := :new.id; if updating then optype := U; elsif deleting then optype := D; id := :old.id; else optype := I; end if; insert into a_log(optype,id) values(optype,id); end; 比如: 业务表A 和 表A的日志表, 表A的日志表信息: 这样日志信息不是很多吗?怎么定时维护呢。 是手工? 读取完就可以删除,或标记已经读取就可以 触发 全表比对方式 在ETL过程中,抽取所有源数据,并进行相应规则转换,完成后先不插入目标,而对每条数据进行目标表比对。根据主键值进行插入与更新的判定,目标表已存在该主键值的,表示该记录已有,并进行其余字段比对,如有不同,进行Update操作,如目标表没有存在该主键值,表示该记录还没有,即进行Insert操作。 优点:对已有系统表结构不产生影响,不需要修改业务操作程序,所有抽取规则由ETL完成,管理维护统一,可以实现数据的递增加载。没有风险。 缺点:ETL比对较复杂,设计较为复杂,速度较慢 Informatica8具体做法: 一个原表:主键为:MON 和 DISTRICTNUM 一个目标表:主键为:DISTRICTNUM 一个mapping为m_All_Table_Compare: 具体展开为: Look up组建查找是目标表,匹配条件是: update组建最关键: 注意:还有一个关键的是,在一个seesion中对目标表进行不要进行删除。 结束,这样增加、删除、修改,都可以更新目标数据了。 全表有条件的删除方式 总体的意思是:原表一般是设定时间字段的条件取出想要的字段,然后在目标表中有条件的删除,再做ETL,这样就可以实现有条件的增量。 优点:取的字段少,效率高,不容易错,修改比较容易 缺点:手动写SQL语

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档