`
kayo
  • 浏览: 560358 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论
阅读更多
ETL
开放分类: 计算机商业智能数据仓库

ETLExtraction-Transformation-Loading 的缩写,中文名称为数据抽取、转换和加载

ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。

ETL是数据仓库中的非常重要的一环。它是承前启后的必要的一步。相对于关系数据库,数据仓库技术没有严格的数学理论基础,它更面向实际工程应用。所以从 工程应用的角度来考虑,按着物理数据模型的要求加载数据并对数据进行一些系列处理,处理过程与经验直接相关,同时这部分的工作直接关系数据仓库中数据的质 量,从而影响到联机分析处理和数据挖掘的结果的质量。

数据仓库是一个独立的数据环境,需要通过抽取过程将数据从联机事务处理环境、外部数据源和脱机的数据存储介质导入到数据仓库中;在技术上,ETL主要涉及 到关联、转换、增量、调度和监控等几个方面;数据仓库系统中数据不要求与联机事务处理系统中数据实时同步,所以ETL可以定时进行。但多个ETL的操作时 间、顺序和成败对数据仓库中信息的有效性至关重要。

  ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为BI/DW(Business Intelligence)的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的 重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设 计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%,这是国内外从众多实践中得到的普遍共识。

      ETL是数据抽取(Extract)、转换(Transform)、清洗(Cleansing)、装载(Load)的过程。是构建数据仓库的重要一环, 用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

  信息是现代企业的重要资源,是企业运用科学管理、决策分析的基础。目前,大多数企业花费大量的资金和时间来构建联机事务处理OLTP的业务系统和办公 自动化系统,用来记录事务处理的各种相关数据。据统计,数据量每2~3年时间就会成倍增长,这些数据蕴含着巨大的商业价值,而企业所关注的通常只占在总数 据量的2%~4%左右。因此,企业仍然没有最大化地利用已存在的数据资源,以致于浪费了更多的时间和资金,也失去制定关键商业决策的最佳契机。于是,企业 如何通过各种技术手段,并把数据转换为信息、知识,已经成了提高其核心竞争力的主要瓶颈。而ETL则是主要的一个技术手段。如何正确选择ETL工具?如何 正确应用ETL?

  目前,ETL工具的典型代表有:Informatica、Datastage、OWB、微软DTS……

  数据集成:快速实现ETL

  ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。而影响质量问题的原因有很多,由系统集成和历史数 据造成的原因主要包括:业务系统不同时期系统之间数据模型不一致;业务系统不同时期业务过程有变化;旧系统模块在运营、人事、财务、办公系统等相关信息的 不一致;遗留系统和新业务、管理系统数据集成不完备带来的不一致性。

  实现ETL,首先要实现ETL转换的过程。它可以集中地体现为以下几个方面:

  空值处理 可捕获字段空值,进行加载或替换为其他含义数据,并可根据字段空值实现分流加载到不同目标库。

  规范化数据格式 可实现字段格式约束定义,对于数据源中时间、数值、字符等数据,可自定义加载格式。

  拆分数据 依据业务需求对字段可进行分解。例,主叫号 861084613409,可进行区域码和电话号码分解。

  验证数据正确性 可利用Lookup及拆分功能进行数据验证。例如,主叫号861084613409,进行区域码和电话号码分解后,可利用Lookup返回主叫网关或交换机记载的主叫地区,进行数据验证。

  数据替换 对于因业务因素,可实现无效数据、缺失数据的替换。

  Lookup 查获丢失数据 Lookup实现子查询,并返回用其他手段获取的缺失字段,保证字段完整性。

  建立ETL过程的主外键约束 对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键惟一记录的加载。

  为了能更好地实现ETL,笔者建议用户在实施ETL过程中应注意以下几点:

  第一,如果条件允许,可利用数据中转区对运营数据进行预处理,保证集成与加载的高效性;

  第二,如果ETL的过程是主动“拉取”,而不是从内部“推送”,其可控性将大为增强;

  第三,ETL之前应制定流程化的配置管理和标准协议;

  第四,关键数据标准至关重要。目前,ETL面临的最大挑战是当接收数据时其各源数据的异构性和低质量。以电信为例,A系统按照统计代码管理数据,B系 统按照账目数字管理,C系统按照语音ID管理。当ETL需要对这三个系统进行集成以获得对客户的全面视角时,这一过程需要复杂的匹配规则、名称/地址正常 化与标准化。而ETL在处理过程中会定义一个关键数据标准,并在此基础上,制定相应的数据接口标准。

  ETL过程在很大程度上受企业对源数据的理解程度的影响,也就是说从业务的角度看数据集成非常重要。一个优秀的ETL设计应该具有如下功能:

  管理简单;采用元数据方法,集中进行管理;接口、数据格式、传输有严格的规范;尽量不在外部数据源安装软件;数据抽取系统流程自动化,并有自动调度功 能;抽取的数据及时、准确、完整;可以提供同各种数据系统的接口,系统适应性强;提供软件框架系统,系统功能改变时,应用程序很少改变便可适应变化;可扩 展性强。


  数据模型:标准定义数据


  合理的业务模型设计对ETL至关重要。数据仓库是企业惟一、真实、可靠的综合数据平台。数据仓库的设计建模一般都依照三范式、星型模型、雪花模型,无 论哪种设计思想,都应该最大化地涵盖关键业务数据,把运营环境中杂乱无序的数据结构统一成为合理的、关联的、分析型的新结构,而ETL则会依照模型的定义 去提取数据源,进行转换、清洗,并最终加载到目标数据仓库中。

  模型的重要之处在于对数据做标准化定义,实现统一的编码、统一的分类和组织。标准化定义的内容包括:标准代码统一、业务术语统一。ETL依照模型进行 初始加载、增量加载、缓慢增长维、慢速变化维、事实表加载等数据集成,并根据业务需求制定相应的加载策略、刷新策略、汇总策略、维护策略。


  元数据:拓展新型应用


  对业务数据本身及其运行环境的描述与定义的数据,称之为元数据(metadata)。元数据是描述数据的数据。从某种意义上说,业务数据主要用于支持 业务系统应用的数据,而元数据则是企业信息门户、客户关系管理、数据仓库、决策支持和B2B等新型应用所不可或缺的内容。

  元数据的典型表现为对象的描述,即对数据库、表、列、列属性(类型、格式、约束等)以及主键/外部键关联等等的描述。特别是现行应用的异构性与分布性 越来越普遍的情况下,统一的元数据就愈发重要了。“信息孤岛”曾经是很多企业对其应用现状的一种抱怨和概括,而合理的元数据则会有效地描绘出信息的关联 性。

  而元数据对于ETL的集中表现为:定义数据源的位置及数据源的属性、确定从源数据到目标数据的对应规则、确定相关的业务逻辑、在数据实际加载前的其他 必要的准备工作,等等,它一般贯穿整个数据仓库项目,而ETL的所有过程必须最大化地参照元数据,这样才能快速实现ETL。

  ETL体系结构

  下图为ETL体系结构,它体现了主流ETL产品框架的主要组成部分。ETL是指从源系统中提取数据,转换数据为一个标准的格式,并加载数据到目标数据存储区,通常是数据仓库。

  ETL体系结构图

  Design manager 提供一个图形化的映射环境,让开发者定义从源到目标的映射关系、转换、处理流程。设计过程的各对象的逻辑定义存储在一个元数据资料库中。

  Meta data management 提供一个关于ETL设计和运行处理等相关定义、管理信息的元数据资料库。ETL引擎在运行时和其它应用都可参考此资料库中的元数据。

  Extract 通过接口提取源数据,例如ODBC、专用数据库接口和平面文件提取器,并参照元数据来决定数据的提取及其提取方式。

  Transform 开发者将提取的数据,按照业务需要转换为目标数据结构,并实现汇总。

  Load 加载经转换和汇总的数据到目标数据仓库中,可实现SQL或批量加载。

  Transport services 利用网络协议或文件协议,在源和目标系统之间移动数据,利用内存在ETL处理的各组件中移动数据。

  Administration and operation 可让管理员基于事件和时间进行调度、运行、监测ETL作业、管理错误信息、从失败中恢复和调节从源系统的输出。

分享到:
评论

相关推荐

    Java分布式ETL框架

    Java分布式ETL(Extract, Transform, Load)框架是用于大数据处理的一种关键技术,它涉及从各种数据源抽取数据,经过转换处理后,加载到目标存储系统的过程。在Java中,实现分布式ETL可以利用多线程、分布式计算以及...

    传统数据仓库ETL设计报告

    ETL平台分为三个主要模块:ETL元数据驱动模块负责根据配置信息生成ETL作业,ETL调度模块配置调度并结合数据质量校验控制执行,而ETL元数据管理模块则用于管理和检索ETL配置信息。 2.1.2.2 ETL平台技术架构 技术...

    ETL Automation 使用手册 Version 2.6.0 中文

    ETL Automation 使用手册 Version 2.6.0 中文 ETL Automation 是一个数据集成平台,旨在提供一个自动化的数据集成解决方案。下面是对 ETL Automation 使用手册 Version 2.6.0 中文的详细知识点解释。 ETL ...

    达梦ETL批量流程向导

    ### 达梦ETL批量流程向导:详细解析与应用指南 #### 一、引言 随着企业数据规模的不断增长以及对数据处理效率要求的提高,ETL(Extract, Transform, Load)技术成为了现代数据仓库建设中的核心环节之一。其中,...

    ETL Automation使用手册

    ETL Automation 使用手册 ETL Automation 是一个自动化的数据集成工具,旨在帮助用户快速高效地完成数据提取、转换和加载(ETL)过程。本手册将详细介绍 ETL Automation 的安装、配置、使用和管理。 ETL ...

    ETL工具 ,基于Kettle实现的Web版ETL工具

    ETL(Extract, Transform, Load)是数据仓库和大数据处理中的关键步骤,它涉及从不同来源提取数据,对其进行转换以适应特定需求,然后加载到目标系统。Kettle是一款开源的ETL工具,由Pentaho公司开发,因其强大的...

    ETL工具,开源,使用需要配置

    ETL(Extract, Transform, Load)是数据仓库领域中的关键过程,用于从各种源系统抽取数据,转换数据以满足特定需求,然后加载到目标数据库或数据仓库中。在这个主题中,我们将深入探讨ETL工具的开源特性以及配置使用...

    ETL架构师面试题.docx

    ETL架构师在数据仓库项目中扮演着至关重要的角色,负责设计和实施数据从源系统到数据仓库的高效、准确的转换流程。本篇主要讨论了几个与ETL架构师面试相关的知识点,包括逻辑数据映射、数据探索阶段、起始来源数据的...

    数据仓库ETL算法详解

    1. ETL的定义:是数据抽取(Extract)、转换(Transform)、清洗(Cleansing)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据...

    1、ETL工程师经典面试题.md

    5. 在 ETL过程中四个基本的过程分别是什么? 6. 从 ERP源系统中抽取数据最好的方法是什么? 7. 简述直接连接数据库和使用 ,ODBC连接数据库进行通讯的优缺点。 8. 什么是代理键?简述代理键替换管道如何工作。 9. ...

    《ETL数据整合和处理》教学大纲.pdf

    在这一背景下,ETL(Extract, Transform, Load)作为一种关键的数据处理技术,对于保证数据的质量和可用性起到了至关重要的作用。本文档《ETL数据整合和处理》教学大纲,旨在为大数据技术专业的学生们提供一门系统...

    面试ETL题总汇

    ### ETL面试题总汇知识点解析 #### 一、逻辑数据映射 **知识点1: 逻辑数据映射定义及作用** 逻辑数据映射(Logical Data Mapping)是一种用于描述源系统数据定义、目标数据仓库模型及其转换过程的技术文档。它是...

    支持国产ETL etl-engine 用go写的轻量级etl引擎 方便集成到各企业中

    【etl-engine】是一款由国内开发者使用Go语言编写的轻量级ETL(Extract, Transform, Load)引擎,旨在帮助用户快速构建ETL解决方案,降低集成到现有项目或产品生态中的技术门槛。它包含了三个主要组件:etl-engine...

    ETL系列专题2 ETL数据结构

    在ETL(抽取、转换、加载)过程中,数据结构的设计尤为重要,因为它直接影响ETL的性能、效率和可靠性。本章节将详细介绍数据结构的概念和在ETL中的应用,尤其是ETL架构设计中Staging Area(暂存区)的原则和常用数据...

    oracle,etl工程师--面试题锦集

    Oracle和ETL(Extract, Transform, Load)是IT行业中数据处理和数据库管理的两个关键领域。作为一位ETL工程师,你需要对数据的提取、转换和加载过程有深入的理解,并且熟悉Oracle数据库系统。以下是一些关于这两个...

    The Data WarehouseETL Toolkit: Practical Techniques for

    在数据仓库领域,ETL(提取、转换、加载)过程是至关重要的环节。数据在成为信息之前,必须从各种来源中提取出来,经过清洗和整合,最后加载到数据仓库中。Ralph Kimball,作为全球数据仓库权威,与Joe Caserta共同...

    使用ETL把EXCEL导入到MySQL,并处理乱码问题

    ### 使用ETL将Excel导入MySQL并处理乱码问题 在数据处理领域,ETL(Extract, Transform, Load)工具被广泛应用于数据集成过程中,用于从不同的数据源提取数据、转换数据格式以及加载到目标系统中。本文将详细介绍...

    ETL规范.doc

    ETL 规范设计指南 ETL(Extract、Transform、Load)是数据集成的重要步骤,涉及到数据的抽取、转换和加载。为了确保 ETL 过程的高效性和可靠性,需要制定相应的规范和标准。本文档旨在提供一份完整的 ETL 规范设计...

    ETL详解.docx

    ETL 与大数据的关系紧密,因为大数据的处理往往涉及大量、多样化的数据整合,而这正是 ETL 技术的核心应用。随着大数据技术的发展,传统的 ETL 过程已经不能满足实时或近实时的数据处理需求。大数据环境下的 ETL ...

    go-etl是一个集数据源抽取,转化,加载的工具集,提供强大的离线数据同步能力。.zip

    《Go-Etl:高效的数据处理工具》 Go-Etl是一个基于Go语言开发的高效数据处理工具,它专注于数据源的抽取、转化和加载(ETL)过程,为开发者提供了强大的离线数据同步功能。在大数据处理领域,ETL是至关重要的一步,...

Global site tag (gtag.js) - Google Analytics