学习啦 > 论文大全 > 学科论文 > 计算机论文 > ETL工具在构建完整的数据仓库体系结构中的运用探讨论文

ETL工具在构建完整的数据仓库体系结构中的运用探讨论文

时间: 谢桦657 分享

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)实现增量的全量加载在企业级数据仓库和数据集市中,常常需要对不同粒度的数据进行加载,例如将月度数据加载到年度分析中。为此,文章提出以增量的全量方式加载数据,提高效率。具体思路如下:获取增量中所有的月度;删除目标表中包含这些月度的年度数据;重新获取源表中包含这些月度的数据,并加工成年度数据;加载年度数据到目标表。

  数据仓库是包含一系列理论和技术的综合环境,它的目的是为数据分析和决策支持提供历史的、丰富的、可用的数据。由此,数据的存储和处理也紧紧围绕这一目的而展开。在这个过程中,工具软件有着不可替代的重要作用。很多开发建设理念就集成在工具软件的应用中。只有充分理解其基础功能,将其不断改造完善,才能使这些理念和规则落地,支撑起整个数据仓库。

437537