ETL 概念简介 ZT

系统 1654 0

       ETL即数据抽取(Extract)、转换( Transform)、装载(Load)的过程。 它是构建数据仓库的重要环节。数据仓库是面向主题的、集成的、 稳定的且随时间不断变化的数据集合, 用以支持经营管理中的决策制定过程。 数据仓库系统中有可能存在着大量的噪声数据,引起的主要原因有: 滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、 拼写变化等。即便是一个设计和规划良好的数据库系统, 如果其中存在着大量的噪声数据, 那么这个系统也是没有任何意义的,因为“垃圾进,垃圾出”( garbage in, garbage out),系统根本就不可能为决策分析系统提供任何支持。 为了清除噪声数据,必须在数据库系统中进行数据清洗。 目前有不少数据清洗研究和ETL研究, 但是如何在ETL过程中进行有效的数据清洗并使这个过程可视化, 此方面研究不多。 本文主要从两个方面阐述ETL和数据清洗的实现过程: ETL的处理方式和数据清洗的实现方法。


(1)ETL的处理方式
本文所采用的ETL方法是数据库段区域中的ETL处理方式, 它不使用外部引擎而是使用数据库作为唯一的控制点。 由于源系统SQLserver2000是关系数据库, 它的段表也是典型的关系型表。 成功地将外部未修改数据载入数据库后,再在数据库内部进行转换。 数据库段区域中的ETL处理方式执行的步骤是提取、装载、转换, 即通常所说的ELT。 这种方式的优点是为抽取出的数据首先提供一个缓冲以便于进行复杂 的转换,减轻了ETL进程的复杂度。


(2)ETL过程中实现数据清洗的实现方法
首先,在理解源数据的基础上实现数据表属性一致化。 为解决源数据的同义异名和同名异义的问题, 可通过元数据管理子系统,在理解源数据的同时, 对不同表的属性名根据其含义重新定义其在数据挖掘库中的名字, 并以转换规则的形式存放在元数据库中,在数据集成的时候, 系统自动根据这些转换规则将源数据中的字段名转换成新定义的字段 名,从而实现数据挖掘库中的同名同义。


其次,通过数据缩减,大幅度缩小数据量。由于源数据量很大, 处理起来非常耗时,所以可以优先进行数据缩减, 以提高后续数据处理分析效率。


最后,通过预先设定数据处理的可视化功能节点, 达到可视化的进行数据清洗和数据转换的目的。 针对缩减并集成后的数据, 通过组合预处理子系统提供各种数据处理功能节点, 能够以可视化的方式快速有效完成数据清洗和数据转换过程。

 

-----------

  数据集成:快速实现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作业、 管理错误信息、从失败中恢复和调节从源系统的输出。

ETL 概念简介 ZT


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论