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 ::分类: ( 数据仓库 ) ::阅读:(227046次) :: 评论 (2) :: 引用 (0)

Drug Information Of Bupivacaine [回复]

Drug Information Numbers , http://canadienszone.com/ - generic diazepam Today diazepam is still widely prescribed by psychiatrists, but the neurology field is actually prescribing it more often to treat many different neurological conditions, in which it has been quite successful in treating. http://canadienszone.com/ - generic valium

bloockySoitty 评论于:2012.01.28 15:21

Review tires and compare price [回复]

New tires
罔睇 Hankook Dynapro HP RA23 245 70 R16 107H 牦镨螯, 鲥磬, 踵疣牝屦桉蜿

crismmeteChit 评论于:2012.01.28 14:20

发表评论

标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)