当前位置:文档之家› ETL维护手册

ETL维护手册


ETL 处理流程包括以下几个方面: 取数据文件流程:取数据文件流程即是 ETL 系统同源系统的接口处理流程, 包括以下几个步骤: 取得源系统当前传送的数据文件文件名列表 校验文件的完整性,根据文件名列表中文件大小和我们实际取得的 文件的文件大小进行比较,可以得到源数据是否完整。若文件名列 表中文件大小和我们实际取得的文件的文件大小相等,表示数据文 件是完整的,若不相等,表示数据文件不完整。将不完整文件转移 到特定目录中,并向监控系统提出报警信息。 校验文件的有效性,根据文件名中所带的任务周期信息判断源系统 产生的数据文件是否是当前的任务周期所需的数据文件。若数据文 件无效,将数据文件转移到特定目录中,并向监控系统提出报警信 息。

ETL 系统同经营分析系统其它子系统的接口界面: ETL 系统同经营分析系统其它子系统的交互是通过数据仓库的基层表形 式完成的。ETL 按照经营分析系统的要求,将数据加载到数据仓库的基 层表,经营分析系统其它子系统根据基层表中的内容形成面向分析使用 的中间表,多维数据库表等等。
1.3. ETL 处理流程

etlrecv.pl:etlrecv.pl 程序是 ETL 系统的取数据模块,它监控是否源系统 有新的控制文件生成,若有则进行文件完整性和有效性检查,若检查失 败,则将源数据文件移入错误目录,若正确,则将控制文件和源数据文 件移入 QUEUE 目录,等待下一步处理。

etlmaster.pl:etlmaster.pl 程序监视 QUEUE 目录,看是否有新的控制文 件,若有,则将控制文件和源数据文件转入 PROCESS 目录中并生成一 个执行 etlslave_nt.pl 的子进程。它作为处理监听进程,是 ETL AUTOMATION 工作框架的一部分。
ETL 维护手册 V0.2.doc
Page 7

控制文件:控制文件是一个文本文件,由源系统生成,作为源系统同 ETL AUTOMATION 之间的接口,源系统使用控制文件通知源系统以生 成了源数据文件,需要 ETL AUTOMATION 进行处理。 控制文件的文件名形如: dir.XXXXXYYYYMMDD, dir.XXXXXXXX.YYYYMMDD,DXXXXXMMDD 内容包括: 源数据文件的文件名 源数据文件的大小 源数据文件的记录数(可选)
ETL 维护手册 V0.2.doc
Page 1
2. ETL 系统概念
ETL 系统是经营分析系统的一个子系统,完成经营分析系统所必须的 ETL 过 程。 ETL 是 extraction,transformation 和 load 的缩写,意思是抽取,转换和加 载。 下面对三个概念分别说明: 抽取:将经营分析所关注的原始的未经转换的源数据从源系统中抽取出来, 按照一定的格式形成数据块,并按照特定的传输协议从源系统传到 ETL 系 统,做为 ETL 系统下一步操作的数据源。 转换:将源系统传来的源数据按照经营分析系统的所规定的正确性,一致 性,无冗余性的要求进行转换。 加载:将数据加载到经营分析系统的数据仓库中。
ETL 总控模块:
ETL 总控模块负责调度取数据模块,多个加载模块,多个转换模块。 它包括以下部分: 任务配置表,它包含了以下信息:
ETL 维护手册 V0.2.doc
Page 5
ETL 过程所须的所有任务标识信息,包括任务标识,任务名 所有任务的任务周期,任务触发的日期和时间段信息 任务之间的依赖关系信息,一个任务是否依赖于其它任务的完 成,一个任务的完成是否应触发其它任务的执行 所有任务对应的执行模块的路径 任务状态表,它包含了当前任务周期内任务执行状态,具体记录了 当前任务周期内哪些任务已执行,执行是否成功等。 总控逻辑:根据任务配置表和任务状态表中信息完成任务的调度和 任务周期的更新。 数据预处理模块: 取数据模块根据源系统传来的数据文件文件名列表完成数据文件的完整 性和有效性校验,若校验不通过,则将错误文件移到特定目录中,并通 过状态日志模块对监控系统提出告警。若校验通过,则将数据文件文件 名和路径提供给下一个总控模块 加载模块: 加载模块将清空数据仓库 ETL 临时表,并将源数据文件加载到数据仓库 ETL 临时表。 转换模块: 转换模块按照经营分析的要求将数据从数据仓库的 ETL 临时表中转换到 数据仓库的基层表中。 控制参数接口模块: 控制参数接口模块是 ETL 管理员同 ETL 系统交互的接口, ETL 管理员 通过控制参数接口模块调整总控模块的任务配置表和查看总控模块中任 务状态表 状态日志模块: 状态日志模块将 ETL 过程产生的各种状态日志信息写入状态日志文件 中,用于监控和查错处理
etlslave_unix.pl or etlslave_nt.pl
execute
/ETL/DATA/complete or /ETL/DATA/fail/error
/ETL/DATA/process
Job Script
它包括以下各部分: ETL AUTOMATION 工作框架:ETL AUTOMATION 工作框架由多个守 护进程构成。它提供了一个开放性的体系结构,允许不同的转换加载逻 辑以 PERL 脚本的形式作为插件加入到整个 ETL AUTOMATION 工作流 程中。
ETL 维护手册 V0.2.doc
Page 6
1.6. ETL 系统实现
ETL 系统将实现为 ETL AUTOMATION 工作框架和处理脚本。
1.7. ETL AUTOMATION 工作框架
ETL AUTOMATION 的工作流程图为:
Control File/Data Files
/ETL/DATA/receive
1.1. ETL 目标
ETL 系统的目标是经过适当的抽取,转换和加载过程,将经营分析系统所关注 的数据从源系统中正确地,一致地,无冗余地载入经营分析系统的数据仓库中。
1.2. ETL 系统边界
ETL 系统边界包括两部分:
ETL 维护手册 V0.2.doc
Page 2

ETL 系统同源系统的接口界面: ETL 系统同源系统的交互是通过文件形式完成的。源系统按照经营分析 系统的要求按照特定的周期以特定的格式生成源数据文件,ETL 系统取 得源系统生成的数据文件进行下一步的处理。
ETL 维护手册 V0.2.doc
Page 3

加载流程:加载流程是将校验通过的正确的数据文件无转换地直接加载到数 据仓库的 ETL 临时表,临时表的结构同于源系统传来的数据文件的结构。

转换流程:转换流程是将 ETL 临时表中的数据按照正确性,一致性,无冗余 性的原则转换到数据仓库的基层表中。 转换原则包括以下各点: 正确性:要求源数据各字段按照确定的转换规则正确地转换到数 据仓库的基层表中,这是转换的最基本的要求。 一致性:要求不同数据源取来的具有相同含义的字段取值按照数 据仓库基层表的数据定义做归一化处理。 无冗余性:由于不同数据源传来的数据中难免有部分数据重复, 所以在转换过程中就要求删除这部分冗余数据,使得加载到数据 仓库的基层表中的数据应是无冗余的。 转换类型包括以下各点: 字段类型转换:由于源数据的字段定义不一定同于数据仓库基层 表字段定义,所以就要求字段类型转换,转换过程不应造成信息 丢失和错误转换。 归一化转换:不同数据源取来的具有相同含义的字段取值按照数 据仓库基层表的数据定义做归一化处理 数据合并:由于数据仓库基层表的实体定义有可能对应到源系统 中多个实体,在这种情况下就要求将源系统中多个实体的数据合 并入一个数据仓库基层表实体中。在合并过程中应注意无冗余性 转换原则。 数据拆分:由于源系统中一个实体有可能对应到数据仓库基层表 的多个实体,在这种情况下就要求将源系统中一个实体的数据拆 分到数据仓库多个基层表中。 转换逻辑组成: 转换逻辑由多个独立的任务组组成 每一个任务组由多个相互依赖的任务组成
etlrcv.pl
/ETL/DATA/fail/bypass /ETL/DATA/fail/error /ETL/DATA/fail/duplicate /ETL/DATA/fail/corrupt /ETL/DATA/fail/unknown etlmaster.pl
fork process
/ETL/DATA/queue
Page 4
ETL 维护手册 V0.2.doc

任务是转换逻辑的最小单位,包含具体的转换逻辑,实现特定 频率,特定时间的数据转换。
1.4. ETL 系统结构
控制参数接口模块
数据预处 源数据 理模块
ETL 总控模块
基层表
状态日志模块
加载 模块
加载 模块
转换 模块
转换 模块
1.5. ETL 功能模块
ETL 维护手册 V0.2.doc
Page 9
3. ETL 数据装载环境
9. 服务器系统名及 IP 定义
系统名:***ETL IP: 127.0.0.1
1.10. 所安装 ETL 的软件及作用
ETL AUTOMATION 的工作框架,包括: PERL 执行环境。 Perl DBI 接口模块,一个类似 ODBC 的接口程序,提供了一组 标 准的函数界面让我们可以使用来对于数据库进行运作。 Perl DBD-ODBC 接口模块,通过 DBD-ODBC 界面呼叫使用 Teradata 所提供的 ODBC 驱动程序来连接 Teradata 的数据库。 Teradata 的 ODBC 驱动程序。 ETL Automation 服务端程序,包括 etlrcv.pl,etlmaster.pl,etlslave_nt.pl,etlagent.pl,etlclean.pl 等。 ETL 前端管理和监控程序 安装 Java 执行环境。 安装 ETL 前端管理程序- ETLAdmin.jar,用户使用此程序完成 ETL 任务,任务组,任务依赖关系的配置。 安装 ETL 前端监控程序 - ETLMonitor.jar,用户使用此程序完成 ETL 任务当前运行状态的监控。
相关主题