`
NistCK
  • 浏览: 38747 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论
阅读更多

  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概述 #### 1. ETL的基本概念 ETL是Extract(抽取)、Transform(转换)和Load(加载)三个英文单词首字母的缩写,它是一种将来自不同源的数据提取出来,经过清洗、转换、集成后统一加载到目标数据库的过程。...

    ETL概述及部分工具比较.rar

    在本资料"ETL概述及部分工具比较"中,我们将会深入探讨ETL的概念、重要性以及常用的ETL工具,并对OLAP专业工具和报表工具进行简要介绍。 ETL过程首先从数据提取(Extract)开始,这一阶段的目标是从各种来源,如...

    ETL概述.pdf

    ETL,全称为数据抽取(Extract)、转换(Transform)、装载(Load),是构建数据仓库的核心过程。这个过程从各种业务系统中提取数据,经过清洗、转换处理,再加载到数据仓库,目的是整合企业中分散、混乱和标准不一...

    ETL概述.docx

    ETL,即数据抽取(Extract)、转换(Transform)、装载(Load),是构建数据仓库的关键步骤。它从各个业务系统的分散、杂乱、标准不统一的数据中提取信息,经过清洗和转换,最终加载到数据仓库中,以支持企业的决策...

    ETL规范.doc

    本文档旨在提供一份完整的 ETL 规范设计指南,涵盖 ETL 概述、开发规范、设计规范等方面的内容。 ETL 规范概述 ETL 规范是指在数据集成过程中,对于数据的抽取、转换和加载的标准和指南。ETL 规范的目的是为了确保...

    ETL设计与开发实践

    一、ETL概述 ETL过程可以分为三个主要阶段: 1. 抽取(Extract):从源系统中提取数据,这些源可能包括数据库、文件、API接口等。 2. 转换(Transform):对提取的数据进行清洗、转换,以满足目标系统的结构和业务...

    ETL开发宝典

    文档共分为四个部分,分别是ETL概述、数据仓库自动化(DW Automation)、ETL开发以及ETL运维。本文将详细解读文档中提供的知识点。 首先,ETL概述部分介绍了ETL在整个数据仓库实施中的重要性。ETL是数据仓库的基石...

    ETL数据整合与处理(Kettle)教案.rar

    一、ETL概述 ETL是数据仓库构建过程中的三个主要步骤:提取(Extract)、转换(Transform)和加载(Load)。首先,从各种源系统中抽取数据,然后对数据进行清洗、转换以满足特定需求,最后将处理后的数据加载到目标...

    数据与智能ETL(第3版).

    #### 一、数据与智能ETL概述 - **定义**:《数据与智能ETL》是一本专注于数据提取、转换和加载(Extract, Transform, Load,简称ETL)过程的专业书籍。本书旨在帮助读者深入理解数据处理的核心技术及其在智能分析中...

    ETL数据挖掘

    #### ETL概述 **ETL**(Extract-Transform-Load)是一种广泛应用于数据仓库建设中的关键技术,用于将数据从一个或多个源头抽取出来,经过必要的清洗与转换后,加载到目标系统中,通常是数据仓库或者数据分析平台。...

    etl数据抽取

    #### 一、ETL 概述 ETL 是 Extract-Transform-Load 的缩写,指的是数据抽取、转换、装载的过程。它是一种常用的将数据从源系统移动到目标系统的数据集成方法。ETL 过程通常涉及从多个数据源收集数据,对这些数据进行...

    ETL中的数据增量抽取机制研究

    #### 二、ETL概述 ETL是数据仓库构建中的关键环节,主要包括以下三个步骤: 1. **数据抽取**:从源系统中抽取需要的数据,这些数据可能来自多种类型的源系统,例如关系数据库、文本文件等。 2. **数据转换**:将...

    经典ETL例子

    ### ETL概述 ETL(Extract-Transform-Load)是一种常用的数据集成技术,用于从一个或多个源系统中提取数据,对其进行清洗、转换等操作,然后将其加载到目标系统中。在本例中,通过SQL语句实现了一个简单的ETL过程,...

    电信经营分析系统中ETL的设计和实现

    #### 二、ETL概述 ETL是构建数据仓库的基础工作之一,主要涉及以下四个步骤: 1. **数据抽取(Extract)**:从电信生产系统等源头抽取原始数据; 2. **数据转换(Transform)**:根据需求对原始数据进行加工处理,...

    开源kettle etl 资料库 er图

    #### 一、Kettle ETL概述 Kettle是一款广泛使用的开源ETL(Extract, Transform, Load)工具,主要用于数据清洗、转换和加载,其核心是Pentaho Data Integration(PDI)。Kettle提供了强大的图形界面和丰富的插件...

    Imformatica宝典

    一、ETL概述 ETL是指Extract、Transform、Load三个过程。Extract是指从源数据库中提取数据,Transform是指对提取的数据进行转换和清洁,Load是指将转换后的数据加载到目标数据库中。ETL过程是数据仓库的核心组件,...

    SSIS起步教程

    #### ETL概述 ETL,即Extract-Transform-Load,是数据仓库技术中的关键步骤,旨在从多种数据源中抽取数据,进行必要的清洗、转换和整合,然后加载至数据仓库或数据集市中,以供后续的分析和报告使用。随着大数据...

    Kettle基本使用.docx

    ETL概述 ETL是数据仓库和数据分析领域中的关键概念,主要包含三个阶段: - **抽取(Extract)**:从各种数据源中提取数据,如数据库、文件、API等。 - **转换(Transform)**:对提取的数据进行清洗、校验、转换...

Global site tag (gtag.js) - Google Analytics