ETL工具在构建完整的数据仓库体系结构中的运用探讨论文
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。以下是小编今天为大家精心准备的:ETL工具在构建完整的数据仓库体系结构中的运用探讨相关论文。内容仅供参考,欢迎阅读!
ETL工具在构建完整的数据仓库体系结构中的运用探讨全文如下:
1 数据仓库的体系结构
数据仓库是面向主题的、集成的、相对稳定的、反映历史变化的数据集合。它通常是指一个数据环境,通过提供当前和历史数据来辅助决策支持。数据仓库的组成部分有:数据仓库数据库、ETL 工具、元数据、访问工具、数据集市、数据仓库管理等。通过对多个异构数据源进行有效的集成,并按照应用主题进行数据重组和展示,就形成了数据仓库系统。由此,根据应用需求的不同,数据仓库的体系结构可以分为以下四种:
(1)两层结构:源数据系统经过处理直接加载到数据仓库;(2)独立型数据集市:加工成多个独立的数据集市来满足多种应用需求;(3)依赖型数据集市和操作型数据存储:完整的数据仓库,多个源数据系统先集成到操作型数据存储(ODS),再转换、加载到数据仓库,最后形成部门级数据集市。文章描述的就是此体系结构的构建过程。它的特点是:整合多个复杂的源数据系统;实现各种复杂的数据转换处理;提供多层次的数据访问;满足多部门的即独立又交叉的应用需求;(4)逻辑型数据集市和实时数据仓库:没有独立的数据集市,体现数据加工的实时性。
2 数据仓库的ETL 过程
ETL 过程是数据加工处理过程的统称,包括三个部分:抽取、转换和加载。它的目的是为决策支持应用提供一个单一的、权威的数据源。数据仓库的ETL 过程是整个系统实施的关键环节,关系到数据仓库的建设成效。无论从理论上还是从实践上来说,运用ETL 工具是一个必需的、明智的选择。文章以Oracle 公司的软件产品ODI11g 来讲解。
3 ETL 的技术难点
数据仓库的数据存储有四个层次,即源数据系统、ODS、企业级数据仓库和数据集市。运用ETL 工具就是实现数据在这四个层次中逐层递进的三级加工处理过程。虽然每一级处理都具有抽取、转换、加载的处理,但是它们的侧重点还是有区别的。
(1)源数据系统到ODS 过程:将多个异构数据源集成到统一的数据集结区ODS,重点是抽取处理,兼有字符集转换、数据类型转换等处理。(2)ODS 到企业级数据仓库过程:将操作型数据转换成事件型数据,重点是转换处理,包含清洗、调和、导出、匹配、合并等多种复杂处理。(3)企业级数据仓库到数据集市过程:将数据按照应用需求进行组合,重点是加载处理,还涉及到索引、更新等处理。下面,结合三级处理,从四个方面描述常见的技术难点及应对。
3.1 数据抽取
(1)静态抽取:为了保证源数据的一致性和完整性,应该抽取操作型数据相关的代码数据和编码数据。这些数据特点是量小,变化小,可以采用全量刷新方法。ODI 工具中,编制一个接口,指定源表和目标表,确定LKM 和IKM,即可实现。此方法也适用于初次抽取操作型数据。(2)增量抽取:源数据系统包含大量的业务数据,必须通过增量更新的方法才能做到有效的抽取。因此,增量更新问题是一个最重要、最根本的技术问题。ODI 工具内置的变化数据捕获机制(CDC)能有效地解决这个问题。实现思路如下:为源表指定日记知识模块JKM;将源表添加到CDC 列表,并启动日记;编制接口时,勾选日记记录的数据,并指定增量模式的IKM。此外,还可以通过编制ODI 过程代码来利用现有的物化视图实现增量更新。
3.2 数据转换
(1)关键维度的统一:多个源数据系统集成后,首先面临的问题就是关键维度的统一。不同的业务系统有各自不同的关键维度(如纳税人识别号,纳税人电子档案号),这就必须统一到唯一的维度。解决这个问题,可以采用对照表的方法。实现思路如下:选定主要的、核心的业务系统的关键维度;以此维度为主,建立其他业务系统的维度对照表;ODI 工具中,编写接口时,增加连接维度对照表,增加字段映射。
(2)数据表的合并:业务系统中可能存在同一事件信息存储于不同的数据表中的情况。ETL 过程需要将分散的数据转换到一个数据表。虽然可以编写多个ODI 接口实现,但是不可避免地存在数据完整性风险,且编制繁琐、执行效率低下。建议采用多个源数据集来实现,思路如下:在ODI 接口中,配置多个源数据集,并设置数据集的顺序和关系;以第一顺序数据集为主,分别设置目标数据项映射关系;指定带有多数据集功能的标准LKM 和IKM。
(3)数据表的拆分:业务系统的单一数据表中可能包含同一维度下的不同粒度的数据,这时就需要将源表数据拆分成多个目标表。常见的情况是,纳税人财务报表数据表中同时包含月报、季报和年报。由于ODI 11G 版本中限定每一个接口只能有一个目标数据存储,所以必须采用新的方法来处理。这里,介绍两种方法来实现。a.编制多个接口,封装在一个程序包中。步骤如下:分别编制多个接口对应多个目标表,将最后一个接口的“清除日记表”选项设置为真,其余接口该项为假;建立程序包,按顺序导入这批接口。b.改造标准IKM,添加插入数据步骤。步骤如下:编制普通的ODI 接口,实现一个目标表的加工;模拟执行接口,并分析执行语句和顺序;获取与目标表相关的语句;复制IKM,并编辑,按照原目标表语句增加其余目标表的执行步骤;指定新的IKM。此方法优点是执行效率高,缺点是改造IKM 需要一定的技术储备,且增加了项目的整体复杂度。
(4)最新有效数据的问题:分析源数据系统的业务规则时,会发现有多次记录业务操作数据的情况,例如更正申报。这就要求在数据转换时,应以操作时间最新或者操作序号最大的记录作为有效数据。解决的方法有两种:a.编写2 个接口,利用临时表存储最新操作时间或最大操作序号,然后再关联源表数据,最后将2 个接口依次导入程序包。b.改造IKM 接口,增加2 个新步骤,修改1 个原步骤,具体如下:新增步骤-创建临时表;新增步骤-在临时表中插入满足业务逻辑的最新有效凭据(时间或序号);修改步骤-在目标表中插入关联到临时表的源表数据。
3.3 数据加载
(1)创建目标表主键:虽然在接口中可以指定目标表的主键,但是标准的ODI 处理并不能自动生成该主键。为此,改造IKM 来实现这个重要功能:选择适当的IKM,为其增加一个选项,并指定类型和默认值;在原IKM 步骤中,增加一个创建主键的新步骤,并在此步骤的选项栏次中勾选新增选项。
此方法的原理是通过一个自定义选项来控制IKM 的逻辑判断,由用户通过配置来决定是否执行此步骤。
(2)实现增量的全量加载在企业级数据仓库和数据集市中,常常需要对不同粒度的数据进行加载,例如将月度数据加载到年度分析中。为此,文章提出以增量的全量方式加载数据,提高效率。具体思路如下:获取增量中所有的月度;删除目标表中包含这些月度的年度数据;重新获取源表中包含这些月度的数据,并加工成年度数据;加载年度数据到目标表。
数据仓库是包含一系列理论和技术的综合环境,它的目的是为数据分析和决策支持提供历史的、丰富的、可用的数据。由此,数据的存储和处理也紧紧围绕这一目的而展开。在这个过程中,工具软件有着不可替代的重要作用。很多开发建设理念就集成在工具软件的应用中。只有充分理解其基础功能,将其不断改造完善,才能使这些理念和规则落地,支撑起整个数据仓库。
ETL工具在构建完整的数据仓库体系结构中的运用探讨论文的评论条评论