数据装载工具(ETL)设计(Extract Transform Load)

原创 2005年05月29日 02:59:00

1.        系统预期

使用图形化界面将外部数据文件装入数据库并按照指定规则将装入的数据添加或替换到目标数据库中。

支持多种格式数据文件。

支持文件装入规则可灵活订制。

支持对指定数据文件内容过滤配置。

实现模板管理。

操作日志记录及日志管理。

装库结果跟踪。

装库过程体现批次概念。

装库过程监视。

2.名词解释

分析器(Parser--- 用于将不同格式的数据文件转换为统一格式(以某符号包围以某符号分隔的文件格式,例:#content#,#content2#等形式)。

映射(mapping ---  将数据文件中的各段内容与预处理库中的字段进行对应,在对应过程中支持合并、拆分、字串截取等操作。

过滤(filter    ---  对指定字段中的内容进行替换、删除、判断不等于某值时替换、判断等于某值时替换等操作。

3.系统描述

系统采用图形界面进行配置,其主要工作流程分为两大部分:分别为预处理部分和处理部分。预处理部分工作流程为:首先将各种格式的数据文件通过预定义的分析器(Parser)进行格式统一转换。根据转换后的数据文件的结构(格式)在系统中生成预处理表(PRD),然后根据业务规则对该结构进行一定的转换(transformation)其中包括字段映射(mapping)及字段内容过滤(filter)操作,最后将数据文件中的相应内容按照映射关系和过滤规则添加到生成的预处理表中,并记录日志。至此预处理部分结束。在预处理部分中每个阶段都有其相应的模板,设置时可直接选择其相应模板即可完成设置工作。

处理部分工作流程为:首先选定源数据库即(预处理库),选定目的数据库即(采购交接库,加工库),然后选择装库规则(预先定义好的Adaptor配置文件)最后设置日志信息。在此阶段可直接选择已定义的模板进行设置。

完成以上两部分设置后则最终将数据文件内容按照指定的规则导入到目标数据库中。

以上过程仅仅只是做了整个装库过程的配置步骤说明,在实际装库操作中可直接选择装库模板,此模板为包括每个阶段模板的总模板。可直接选择此模板进行所有各阶段的装库设置,之后点击确定进行装库操作。

 

4.功能实现

系统在装入数据文件时采用外部格式统一方式,选用相应的数据格式解释器(Parser)并设置其转换规则将不同格式的数据文件统一转换成同一种数据格式。之后可将设置内容保存为文件格式转换模板进行保存。

将经过格式转换的数据文件导入系统后对数据文件的各段内容与预处理数据库字段之间进行映射操作。并为预处理数据库字段的字段类型进行指定。映射操作中支持字段合并及字段拆分和字段截取操作,分别用符号“+”、“方向箭头”、“subString(字符串开始位置,截取字符数量)来对标识及对对应的操作进行支持。

字段映射操作后,对字段内容进行过滤,过滤操作实现了将指定字段内容进行替换、删除、判断如果等于某个值就替换为某值、如果不等于某值就替换为某值操作。过滤字段(为所有可选择的字段)、字段内容(字段内容的某个值或整个字段)另外还支持将日期格式“04/12/2004”转换成“2004/04/12”等日期格式转换操作。

对字段内容进行过滤后指定源数据库(预处理库)及目的数据库(采购交接库及加工库)并设置装库日志列表,指定装库规则后选择确定,系统自动将对源数据库及目的数据库的设置,装库日志信息修改到Adaptor预先定义好的模板文件的相应位置,并调用后台Adaptor引擎进行装库操作。

Adaptor引擎在执行时将自己封装成一个进程,前台系统通过监测该进程的状态判断装库进度。Adaptor引擎在执行装库操作时将日志信息及装库操作的一些信息写到相应数据表中,前台系统监测执行装库任务的进程开始后便可到相应数据表中取出装库操作信息(已经装入的记录条数)及装库日志到前台显示。从而实现装库过程监视功能。

 

4.1分析器(Parser)实现

分析器为针对某种格式的数据文件开发的能够将其转换成某种特定格式的程序类,一个分析器可能包括一个或多个程序类及一个配置文件。

配置文件是系统能够识别及正确使用该分析器的前提,即系统通过解析该配置文件来正确调用分析器的程序类实现特定的功能。系统解析该配置文件后便知道需要传入什么样的参数及如何调用些分析器的各个程序类。

在配置文件中主要描述程序类的方法名称调用参数及方法注释等。

界面显示如下:

   

 

4.2映射(mapping)实现

映射操作是将读入的数据文件内容与预处理库的字段进行对应及为预处理库的字段指定数据类型的操作,在映射过程中可进行字段合并、复制、拆分、截取操作。

字段合并:此操作是将两个或两个以上的数据文件字符串合并成一个字段对应到预处理库中,在合并操作时各合并的字段有先后顺序。在界面中使用“+”号来标识字段合并操作。

例如:数据文件字段标识1+数据文件字段标识2+数据文件字段标识3

字段复制:此操作是将数据文件字符串复制全并到预处理库的某个字段中。在界面中使用“方向线”来标识此操作。

字段拆分:此操作是将一个数据文件字符串拆分成两个或两个以上的字符串分别对应到到预处理库的相应字段。在界面中使用“方向线”和“subString()”来标识拆分操作。

字段截取:此操作是将一个数据文件字符串按要求进行截取后对应到预处理库的相应字段中。在界面中使用“方向线”和“subString()”来标识。

                    例如:subString(字符串开始位置,截取字符数量)

界面显示如下:

4.3过滤(filter)实现

过滤操作是将指定的预处理库字段的内容进行替换、删除、判断替换、判断删除、格式转换操作。

替换:将指定的字段中的某些字符替换成其它字符。在界面中使用“替换”来标识此操作。

删除:将指定字段中的某些字符删除。在界面中使用“删除”来标识此操作。

判断替换:将指定字段中的某些字符进行判断如果“不等于”则替换。在界面中使用“不等于”来标识此操作。

将指定字段中的某些字符进行判断如果“等于”则替换。在界面中使用“等于”符号来标识此操作。

 

 

判断删除:将指定字段中的某些字符进行判断如果“不等于”则删除。在界面中使用“不等于”来标识此操作。

将指定字段中的某些字符进行判断如果“等于”则删除。在界面中使用“等于”符号来标识此操作。

4.4 数据转库实现

         数据转库操作是将已装入预处理库的数据按照配置的规则转到其它数据库中。其中包括记录内容判断、记录添加、记录修改等数据库操作。其实现方式为首先对装库流程的规则预先定义一个Adaptor模板及Adaptor配置文件,通过系统可视化操作对Adaptor配置文件中的相应值进行修改,并对其中用到的日志内容进行设置,完成后调用Adaptor引擎进行转库操作。Adaptor引擎则将自己包装成一个进程运行,系统通过动态监测该进程的状态来监控执行进度。Adaptor引擎进行转库操作中将日志信息及转库的记录条数等信息写到转库信息表及日志表中,系统通过从日志信息及转库信息表中读取信息来显示其执行进度及已执行的记录条数等信息。同时系统通过监测该进程是否结束来判断操作是否已经结束,如已经结束则显示全部转库信息。

 

备注:在整个操作过程中在对数据未进行过滤之前先将数据文件内容原样放装入数据库中一份做为备份。

ETL(Extract、Transform、Load )实现过程

什么是ETL 在数据仓库的构建中,ETL贯穿于项目始终,它是整个数据仓库的生命线,包括了数据清洗、整合、转换、加载等各个过程。如果说数据仓库是一座大厦,那么ETL就是大厦的根基。ETL抽取整合数据的好...

sklearn 数据加载工具(1)

简介sklearn.datasets 包提供了一些小的toy数据集。为了评估数据特征(n_samples,n_features)的影响,可以控制数据的一些统计学特性,产生人工数据。这个包提供一些接口,...

数据提取、转换和加载 - ETL工具

ETL,Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。 ETL工具有:OWB(Oracle Warehouse Builder)、ODI(O...

Trafodion ETL工具odb进行数据load方法及性能

简介 odb是Apache孵化项目Trafodion自带的ETL工具,主要可完成数据表的导入、导出和两个数据库之间的复制功能。是一个小巧实用、linux/windows双平台的工具。 当环境安...
  • c1990
  • c1990
  • 2017年01月19日 17:15
  • 292

一步一步配置 GoldenGate 数据同步:Extract、Pump、Replicat 和 initial load

环境准备:   Source:192.168.8.160  prod.oracle.com  prod target: 192.168.8.180  dss.oracle.com  dss  ...

开源ETL工具kettle系列之增量更新设计

前言ETL中增量更新是一个比较依赖与工具和设计方法的过程,Kettle中主要提供Insert / Update 步骤,Delete 步骤和Database Lookup 步骤来支持增量更新,增量更新的...

开源ETL工具kettle系列之增量更新设计技巧

ETL中增量更新是一个比较依赖与工具和设计方法的过程,Kettle中主要提供Insert / Update 步骤,Delete 步骤和Database  Lookup  步骤来支持增量更新,增量更新的...

数据仓库ETL调度工具的开发(一)

数据仓库ETL调度工具的开发(一) 介绍: 如何实现一款简单的ETL调度工具,支持以下几个关键功能: 1、作业依赖关系的配置 一个作业可能依赖于多个作业,同时也可以被多个作业依赖,前面所依赖的作业都...

开源ETL工具kettle--数据迁移

开源ETL工具kettle使用简单,功能强大

ETL数据导入/导出工具 HData

HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC、Hive、HDFS、HBase、MongoDB、FTP、Http、CSV、Excel、Kafka等)之间数据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据装载工具(ETL)设计(Extract Transform Load)
举报原因:
原因补充:

(最多只允许输入30个字)