R7-DIP数据抽取功能说明(ETL)

R7-DIP数据抽取功能说明(ETL)
R7-DIP数据抽取功能说明(ETL)

R7‐DIP 数据抽取组件介绍

翱旗创业(北京)科技有限公司

目录

1 传统数据抽取工具及缺陷 (1)

2 R7‐DIP数据抽取的实现 (2)

3 R7‐DIP数据抽取的主要特点和优势 (4)

4 R7‐DIP数据抽取的转换功能 (5)

5 R7‐DIP数据抽取的配置与监控: (9)

5.1 任务配置 (9)

5.2 运行状态显示 (13)

1传统数据抽取工具及缺陷

现有的ETL产品都是通过sql接口从生产数据库上抽取,或者是由生产数据库的应用开发商根据ETL的要求定期生成接口文件。这是ETL常见的两种接口方式。

在目前的ETL抽取机制中,一般有以下几种限制条件:

(1)ETL抽取频率为1天一次

无论是ETL直接从生产数据库中读取数据,还是通过生成数据文件的方式来传输数据。其频率一般都是每天进行一次。

因为无论是直接抽取还是生成数据文件,都只能选择在夜间业务量较小的时间段完成。

(2)无法有效处理增量数据识别问题

按照ETL的设计原理,每天从生产系统抽取数据最好是当天的变化数据,这样能大幅度缩短抽取时间,将对生产系统的性能影响降到最低。

为了实现增量数据的抽取,就必须具备识别增量数据的条件,通常的做法包括:

(1)通过生产系统中的table中的某个字段来表示该数据是否发生了改变,以及发生

改变的日期;

(2)在生产系统中的table上增加timestamp字段,用来记录该条记录发生变化的时间;

(3)由应用厂商来根据业务逻辑判断,将当天的改变数据自动生成接口文件。

以上三种方式不能适合所有的情况,尤其是那些经常进行UPDATE的操作的表更是难以处理。

不得以,很对用户的ETL对那些无法识别增量的table进行每天一次全量抽取,通过全量数据来和前一次抽取的数据之间进行比较来判断数据的增、删、改。

这种方式最大的问题在于:

(1)每天抽取的数据量过于庞大。每天上亿到几十亿条记录都重新处理将占用大量资源和时间;

(2)每次的抽取对生产系统占用大量的资源,严重影响到生产系统的正常运行。

2R7‐DIP数据抽取的实现

R7-DIP解决方案的目的是为ETL工具提供一个增量实时数据抽取解决方案。该工具利用对生产系统数据库 redo log的跟踪机制,来对生产系统的数据进行变化跟踪,变化的数据可以提供多种方式使用:

●直接将数据装入数据仓库系统

●将数据变化实时传给ETL工具

●形成增量数据集合供ETL调用。

为了提供增量数据实时抽取功能,R7-DIP软件提供了数据库的增量跟踪技术关键技术.

增量跟踪技术是该组件的最重要环节,因为该环节的目的是解决传统ETL厂商无法解决的实时抽取和增量抽取问题。R7-DIP对Log日志进行实时分析,从而获取源系统端的交易指令;然后,将这些交易指令和交易数据经过格式转化生成数据格式,并根据不同业务需求进行过滤和转化成与生产应用相吻合的指令。

DataBase

LGWR

Online/Archive LOGS DataBase

LGWR

Online/Archive LOGS

DataBase

LGWR

Online/Archive LOGS R7‐DIP

日志分析

DataWareHouse

R7-DIP的转换模块位于数据抓取和装载模块之间,为了提高ETL模块的灵活性,ETL 模块被设计成了独立的模块。该模块从抓取队列中读取数据,根据配置规则进行转换,然后输出给loader进行装载。

3R7‐DIP数据抽取的主要特点和优势

1.实时数据抽取

传统的ETL都是采用任务调度的方式从数据库表中select数据,因此抽取任务的时间间隔较长,一般为24小时,及时缩短抽取间隔,也得要1个小时以上抽取一次。

而随着数据仓库承载的业务系统越来越多,越来越实时,所以要求数据的抽取也越来越实时,所以传统的ETL越来越无法满足要求。

R7-DIP目的是为用户提供一个实时的抽取过程,做到秒级的数据抓取,只要数据源数据发生变化,就能理科反应到数据仓库上。这将是未来ETL的一个必然方向。

2.节省数据抽取时间

因为传统的技术是通过SQL语句从生产数据库中批量抽取数据,每天抽取的数据量非常庞大,所以导致事件很长。最有效的解决方法就是将集中批量抽取的工作分散到日常工作中来。

R7-DIP的工作原理是当源数据库每产生一个log时,R7-DIP都立即分析产生的log,并且将产生的数据更新到数据仓库上,当每天的业务完成时,剩下的log也将在短期内应用

到数据平台上去,这样就不需要批量从源数据库上抽取数据了。

3.支持数据变量识别功能,减少数据抽取量

R7-DIP从log中抓取到的数据在装入到数据平台上时,对每条记录的每次修改都将增加2个字段,用来标识该条记录的修改时间和修改类别。

这样便于数据平台上准确、快速识别变量数据。

4.支持常用的数据转换功能

由于数据源和目标端的报表结构不一致,经常需要在源和目标库之间进行必要的转换,而作为实时复制软件而言,他们的重点在于数据的实时抓取上,所以基本上都只实现镜像式复制,不能进行转换。

而R7-DIP将数据实时抓取和数据转换结合在一起,在实时抓取过程中就实现了数据的基础转换。

5.复制平台需要具备扩展性,与应用无关

R7-DIP是通过对源数据库的log文件做分析,不需要从每个数据表中获取数据,因此这种数据抽取和表的结构无关,对于表的结构变化,或者新增加表,都不需要对复制软件进行修改。

4R7‐DIP数据抽取的转换功能

在实时复制过程中,R7-DIP提供了最常见,最常用的数据转换功能,将那些和业务配合十分紧密的数据转换工作交给应用厂家完成。

行列过滤:通过where条件和字段过滤设置复制指定表的一个子集。

列过滤:过滤掉指定的column:

去掉F_NAME字段:

列映射: 修改字段名,将源端字段名和目标端字段名映射:

转换为:

●数据转换:在复制过程中在不同数据库之间,不同表结构之间对数据进行加工处理:

●增加字段:在目标表中对每条记录的操作都增加描述字段,用来描述该条记录的操

作类型、操作时间等,用于ETL对改变记录的识别:

5R7‐DIP数据抽取的配置与监控:

5.1任务配置

R7‐DIP通过流程化方式配置数据抓取、转换与装载:

例如,如下图是从一个数据库中经过capture,etl和apply将数据从rac数据库装载到cosco 数据库:

数据库的配置:

数据捕获的配置:

数据转换的配置:

[oracle@localhost etl]$ more rules.xml

‐‐ for test_etl_1

coldel

coldel.xml

coladd

colcal.xml

colmap

colmap.xml

coladd

coladd.xml

row_filter

colfilter.xml

‐‐end for test_etl_1

[oracle@localhost etl]$ more coldel.xml

column_mapping

delete

REMARK

DK.TEST_ETL_1

[oracle@localhost etl]$ more coladd.xml

add_column

DATAFROM

char

10

string

db_13

MODI_SCN

char

10

commit_scn

DK

TEST_ETL_1

[oracle@localhost etl]$ more colcal.xml

column_calculation

AGE

AGE

:AGE*10/5

DEPT

DEPT

decode(:DEPT,'1','SALES','2','TECH','OTHER')

DK.TEST_ETL_1

5.2运行状态显示

R7‐DIP通过流程化图形显示日志的分析,数据转换和装载的各个环节状态:

相关主题
相关文档
最新文档