2005 年 08 月 07 日, 星期日

ETL具体应用

ETL具体应用

   ETL具体应用
1
.数据提取 数据提取主要是针对各个业务系统及不同网点的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,制定可操作的数据源,制定增量抽取的定义。确定如何抽取或者查询源数据并非易事,因为它往往存储在多个地方。比如关系数据库、文本文件或其它类型的文件等,连接的时候可以通过标准的连接工具比如ODBC驱动程序或这FTP来访问源数据等。从设计的角度来看,应当尽量忽视一些连接问题。把所有的源数据看做一个单一数据存储,把主要精力集中在源数据如何映射目标数据上。数据提取的时候必须对设计流程深刻的理解,选择合适的源表。
访问一个数据库系统和从中提取数据有如下几种方法: 1)通过标准的应用程序接口(APIs)。如SQL Call Level InterfaceX/Open’sCLIOLEDBODBCJDBC等; 2)利用数据库的数据复制工具; 3)利用第三方提供的软件中间件和网关。
对某些特定系统来说,需要编写提取程序来提取所需的数据并将数据保存在平面文件中。
专用的数据访问抽取模块,可以对结构化、半结构化、非结构的数据进行访问并抽取。 从数据源抽取出的数据通常先放置在临时数据区,这个临时数据区是数据的中转区,可以是一个临时的数据库或者简单的一个平面文件。以后的数据转换,清洗等就可以在这个临时数据区完成,不仅保证了集成和加载的高效性,而且数据更新时不会影响用户对数据仓库的访问。当完成数据加载后,就可以删除临时数据区内数据。

2
.数据转换和清洗 数据仓库建立之后,要通过一系列的转换来实现将数据从业务模型到分析模型,通过内建的库函数、自定义脚本或者其它的扩展方式,实现了各种复杂的转换,并且支持调试环境,清除的监控数据转换的状态。数据转换时真正将源数据变为目标数据的关键环节,它包括数据格式转换、数据类型转换、数据汇总计算、数据拼接等。但是这些工作在实际处理时可视具体情况而定,比如可在数据抽取时转换,也可以在数据加载时转换。 数据清洗就是将错误的、不一致的数据在进入数据仓库之前进行更正或者删除,以免影响决策的正确性。由于业务系统的数据存在很多问题,比如:滥用缩写词、惯用语、数据输入错误、数据中的内嵌控制信息、重复记录、丢失值、拼写变化、不同的计量单位和过时的编码等,我们必须针对系统的各个环节通过试抽取,将有问题的纪录先剔除出来,根据实际情况调整相应的清洗工作。 在实际应用中,比较具体的转换和清洗工作有:
空值处理:可捕获字段空值,进行加载或替换为其它含义的数据,并根据字段空值实现分流加载到不同的目标库;
规范化数据格式,可实现字段格式约束定义,对于数据源中时间、数值、字符等数据,可自定义加载格式;
拆分数据:依据业务需求对字段进行分解;
验证数据正确性;
数据替换:对无效数据、缺失数据进行替换;
建立ETL过程的主外键约束,对无依赖性的非法数据,可替换或导出到错误数据文件中,以保证主键唯一记录的加载;
数据规则过滤。 目前国内外关于数据清洗领域的研究非常活跃,主要涉及以下几个方面[4]
研究高效的数据异常检测算法以避免扫描整个庞大的数据集;
在自动化异常检测和清洗处理间增加人工判断处理以提高处理精度;
数据清洗时对海量数据集进行并行处理;
如何消除合并后数据集中的重复数据;
建立一个通用的领域无关的数据清洗框架;
关于模式集成问题; 已有研究为数据ETL积累了丰富的脏数据处理经验,提出了诸多数据清洗算法:脏数据预处理、排序邻居方法、优先排队算法、多次遍历数据清理方法、增量数据清理、采用领域知识进行清理、采用数据库管理系统的集成数据清理算法等。这些算法大多可运应到数据ETL的数据清洗过程中,极大地简化了数据ETL软件的实现,提升了最终软件的服务质量。

3
.数据加载
数据加载主要是将经过转换和清洗的数据加载到数据仓库里面,可以通过数据文件直接装载或直连数据库的方式来进行数据装载。除了装载表以外,加载任务还包括:管理数据行、建立表索引和表约束、汇总表,以及对表进行检索、连接、排序和合计等操作。数据仓库的装载任务很庞大,因此应尽可能减少数据装载的时间,依靠多CPU和多I/O并行操作加快装载速度。
向数据仓库中载入数据有两种基本的方式:使用工具全体批量装入或者通过查询语句装载。通常使用工具装入数据的方式是比较快的。比如Oracle的装载工具 SQL*Loader。使用SQL*Loader装载数据库是一种高效灵活的方法,可从多个外部数据源装载数据,在不同数据库类型之间拷贝数据。SQL*Loader可以直接(Direct)装载数据到表中,并且允许多个会话并行(Parallel)地将数据装载到同一个表中。 当装载的数据容量很大的时候,可采用两种方法装载数据。
并行装载:数据被分成几个工作流,对输入的数据进行划分后,每一个工作流就独立于其它工作流的执行。
缓冲处理:装载之前对数据进行缓冲处理。独立的数据在被抽取/转换/装载软件处理之前被集中在一起放入缓冲区。
4
.调度控制
调度控制是ETL中较为重要的功能。它不但可以将源数据加载到数据仓库中,而且还可以更新数据集市,更重要的是还可以更新联机分析处理服务器和挖掘模型数据。它在整个商务智能方案中扮演着总指挥、总调度的角色。

jiexijihe 发表于:2005.08.07 12:24 ::分类: ( 数据仓库 ) ::阅读:(190042次) :: 评论 (0) :: 引用 (0)

发表评论

标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)