owb实现时间戳增量抽取方式的实现

[复制链接]
查看11 | 回复5 | 2014-4-22 16:13:00 | 显示全部楼层 |阅读模式
owb实现时间戳增量抽取方式的实现步骤是什么啊 比如我有两张表 一张源表Source表 一张目标表Target 表 两张表中都各自有timestamp类型的列 怎么在maping中设置 使这两张表的增量方式为时间戳方式增量?
初学者请各个大神指导

回复

使用道具 举报

千问 | 2014-4-22 16:13:00 | 显示全部楼层
无论你用什么工具做增量ETL,你首先要明确你需要用什么字段来做增量。按照你说的使用时间戳做增量,那你需要在你建立的mapping里面增加一个存放参数的控件,在里面设置好你要做增量的频率,比如你是按T+1方式做增量,还是按月增量...
以T+1增量ETL为例,在参数控件中设置你要做增量的时间区间,比如,你要增量抽取2000-01-01这一天的数据,你source表里的时间戳字段名叫update_date,你可以设置参数start_date = date'2000-01-01',end_date'2000-01-02',然后在设计mapping的时候将你需要落地的source表与这个参数控件做JOIN,在JOIN条件里面设置关联条件update_date >= start_date and update_date < end_date,然后落地到target表。这样你运行mapping的时候,加载的数据就是按照时间戳字段做的T+1的增量,抽取的是start_date和end_date这个时间区间的数据。当然如果要使用process flow来进行mapping的调度的话,可以在flow中设置此参数,在mapping中直接调用,可以控制整个etl数据流的时间区间。不过那个更复杂,你可以去看下owb的官方文档。
其实你要明白一点,任何一款ETL工具,只是SQL的图形化操作而已,原理还是SQL,所以一定要先把SQL的逻辑写好,用工具做起来就很简单了。特别是OWB,建立好的mapping发布之后会在Oracle数据库中创建同名的Package,运行mapping的时候就是在跑数据库中生成的Package而已,OWB仅仅提供一个图形化的操作工具。
回复

使用道具 举报

千问 | 2014-4-22 16:13:00 | 显示全部楼层
zixiao86 发表于 2014-4-23 14:56
无论你用什么工具做增量ETL,你首先要明确你需要用什么字段来做增量。按照你说的使用时间戳做增量,那你需要 ...

那我想问下 在mapping 里面增加个存放参数的控件那个控件应该是什么啊? 我做增量的频率是在计划中控制的
回复

使用道具 举报

千问 | 2014-4-22 16:13:00 | 显示全部楼层
遥望未来504169453 发表于 2014-4-24 16:46
那我想问下 在mapping 里面增加个存放参数的控件那个控件应该是什么啊? 我做增量的频率是在计划中控制 ...

owb有一个Mapping Input Parameter控件,你可以在里面给定任何你需要的参数。不管你在mapping中控制,还是在计划中控制,你最后是需要把时间区间(我这里说的是以参数方式,还有很多方式)放到程序中与源表的增量字段--就是你说的时间戳--做关联,作为限制条件,实现增量的ETL
回复

使用道具 举报

千问 | 2014-4-22 16:13:00 | 显示全部楼层
zixiao86 发表于 2014-4-24 18:07
owb有一个Mapping Input Parameter控件,你可以在里面给定任何你需要的参数。不管你在mapping中控制,还是 ...

我使用哪个Mapping input parameter控件怎么不能把我target表中的时间戳字段和当前系统时间戳放到里面 ?
回复

使用道具 举报

千问 | 2014-4-22 16:13:00 | 显示全部楼层
遥望未来504169453 发表于 2014-4-28 16:42
我使用哪个Mapping input parameter控件怎么不能把我target表中的时间戳字段和当前系统时间戳放到里面 ?

那是用来放参数的,在里面你添加需要的时间参数,用来作为条件的..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行