ETL问题小结.docx

上传人:b****2 文档编号:1612189 上传时间:2022-10-23 格式:DOCX 页数:20 大小:125.82KB
下载 相关 举报
ETL问题小结.docx_第1页
第1页 / 共20页
ETL问题小结.docx_第2页
第2页 / 共20页
ETL问题小结.docx_第3页
第3页 / 共20页
ETL问题小结.docx_第4页
第4页 / 共20页
ETL问题小结.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

ETL问题小结.docx

《ETL问题小结.docx》由会员分享,可在线阅读,更多相关《ETL问题小结.docx(20页珍藏版)》请在冰豆网上搜索。

ETL问题小结.docx

ETL问题小结

ETL小结

Requirement

1在数据仓库项目中,数据探索阶段的主要目的是什么?

Whataretheprimarygoalsofthedatadiscoveryphaseofthedatawarehouseproject?

在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。

对源系统的分析通常包括两个阶段,一个是数据探索阶段(DataDiscoveryPhase),另一个是异常数据检测阶段。

数据探索阶段包括以下内容:

1)收集所有的源系统的文档、数据字典等内容。

2)收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。

3)判断出数据的起始来源(System-of-Record)。

4)通过数据概况(DataProfiling)来对源系统的数据关系进行分析。

数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。

2如何确定起始来源数据?

Howisthesystem-of-recorddetermined?

这个问题的关键是理解什么是System-of-Record。

System-of-Record和数据仓库领域内的其他很多概念一样,不同的人对它有不同的定义。

在Kimball的体系中,System-of-Record是指最初产生数据的地方,即数据的起始来源。

在较大的企业内,数据会被冗余的保存在不同的地方,在数据的迁移过程中,会出现修改、清洗等操作,导致与数据的起始来源产生不同。

起始来源数据对数据仓库的建立有着非常重要的作用,尤其是对产生一致性维度来说。

我们从起始来源数据的越下游开始建立数据仓库,我们遇到垃圾数据的风险就会越大。

3数据需求调研

在调研过程中,要特别注意把握好关于数据的如下几方面需求:

1)数据需求:

需要哪些种类的数据?

哪些种类的数据是基础的,具有原子性,哪些种类的数据可以通过其他数据计算出来?

原子数据的覆盖面要广些,便于针对可变的需求进行扩展。

2)分析维度需求:

对每一种数据,需要从哪些角度去分析、展现?

应用发散性思维考虑得尽可能多些;

3)分析粒度需求:

对每种数据的每一个分析维度,沿维的层次结构分析到何种级别、粒度?

4分析数据源:

从何处获取数据?

能获取怎样的数据?

需求能否得到满足,还取决于数据源的状况。

如下分析:

(1)需要怎样的数据?

这些数据的分析维度有哪些?

沿各维的分析粒度如何?

(2)各子公司的业务系统如何?

数据如何存储(Excel?

Access?

MSSQLSERVER?

Oracle?

等等)?

(3)如果用的是ERP系统,那么版本如何?

已上了哪些模块或子系统?

(4)所需数据能否从数据源获得?

是否有可能从数据源的多处获得?

更具体的,是从哪些表的哪些字段获得?

是否需要作必要的转换?

(5)抽取的数据能否满足维度分析的要求?

如果不能满足,那么如何弥补?

(6)抽取的数据能否达到所需要的分析粒度?

如果不能满足,该如何弥补?

(7)抽取数据的装载目标如何?

为填充数据仓库事实表,还需要借助数据源中的哪些其他表的其他数据?

Architecture

5在ETL过程中四个基本的过程分别是什么?

WhatarethefourbasicDataFlowstepsofanETLprocess?

Kimball数据仓库构建方法中,ETL的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取(extract)、清洗(clean)、一致性处理(comform)和交付(delivery),简称为ECCD。

5.1抽取阶段的主要任务是:

1)连接并访问源系统的数据。

2)读取源系统的数据模型。

3)变化数据捕获。

4)抽取数据到数据准备区。

5.2清洗阶段的主要任务是:

1)清洗并增补列的属性。

2)清洗并增补数据结构。

3)清洗并增补数据规则。

4)增补复杂的业务规则。

5)建立元数据库描述数据质量。

6)将清洗后的数据保存到数据准备区。

5.3一致性处理阶段的主要任务是:

1)一致性处理业务标签,即维度表中的描述属性。

2)一致性处理业务度量及性能指标,通常是事实表中的事实。

3)去除重复数据。

4)国际化处理。

5)将一致性处理后的数据保存到数据准备区。

5.4交付阶段的主要任务是:

1)加载星型的和经过雪花处理的维度表数据。

2)产生日期维度。

3)加载退化维度。

4)加载子维度。

5)加载1、2、3型的缓慢变化维度。

6)处理迟到的维度和迟到的事实。

7)加载多值维度。

8)加载有复杂层级结构的维度。

9)加载文本事实到维度表。

10)处理事实表的代理键。

11)加载三个基本类型的事实表数据。

12)加载和更新聚集。

13)将处理好的数据加载到数据仓库。

从这个任务列表中可以看出,ETL的过程和数据仓库建模的过程结合的非常紧密。

换句话说,ETL系统的设计应该和目标表的设计同时开始。

通常来说,数据仓库架构师和ETL系统设计师是同一个人。

6在数据准备区中允许使用的数据结构有哪些?

各有什么优缺点?

Whatarethepermissibledatastructuresforthedatastagingarea?

Brieflydescribetheprosandconsofeach.

6.1固定格式的文本文件(FlatFile)

FlatFile指的是一种保存在系统上的一种文本文件格式,它以类似数据库的表的方式用行和列来保存数据。

这种文件格式经常用来进行数据交换。

用于保存数据不太合适。

6.2XML数据集

多用于数据交换,用户保存数据不太合适。

6.3关系数据库的表

保存数据的较理想选择。

6.4独立的数据库表

独立的数据库表一般指建立的表和其他表没有外键约束关系。

这样的表多用于数据处理。

6.5三范式或者关系型模型

6.6非关系型数据源

非关系型数据源一般包括COBOLcopybooks、VSAM文件、Flat文件、Spreadsheets等。

6.7维度模型

6.8原子事实表和聚集事实表

6.9代理键查找表

7ETL过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?

WhenshoulddatabesettodiskforsafekeepingduringtheETL?

Staging的意思就是将数据写到磁盘上。

出于安全及ETL能方便重新开始,在数据准备区(StagingArea)中的每个步骤中都应该将数据写到磁盘上,即生成文本文件或者将建立关系表保存数据,而不应该以数据不落地方式直接进行ETL。

例如,在数据抽取阶段,我们需要连接到源系统,为了对源系统的影响尽量小,我们需要将抽取的数据保存成文本文件或者放入数据准备区的表中,这样,当ETL过程出现错误而失败时,我们就可以从这些文本文件开始ETL,而不需要再次影响源系统。

Extract

8异构数据源中的数据抽取技术

Describetechniquesforextractingfromheterogeneousdatasources.

在数据仓库项目中,需要抽取的数据经常来自不同的数据源,它们的逻辑结构和物理结构都可能不同,即称之为异构数据源。

在对异构数据源进行整合抽取时,我们需要做的事情依次是标识出所有的源系统,对源系统进行概况分析,定义数据匹配逻辑,建立筛选规则,生成一致性维度。

对于源数据的操作系统平台和数据平台各不相同的情况,我们需要根据实际情况来确定如何进行数据抽取,通常的方法有建立ODBC连接、定义接口文件、建立DBLINK等方法。

9从ERP源系统中抽取数据最好的方法是什么?

WhatisthebestapproachforhandlingERPsourcedata?

ERP系统的产生是为了解决企业内异构数据的整合。

这个问题也是数据仓库系统面临的主要问题。

ERP的解决方案是将企业内的各个应用(包括销售、会计、人力资源、库存和产品等)建立在相同的平台和相同的应用框架下,即在应用操作层将企业内的数据进行了一致性处理。

而数据仓库是在应用操作层之上建立一致性的规则并进行一致性处理。

目前比较流行的ERP系统有SAP、PeopleSoft、Oracle、Baan和J.D.EDwards(大部分没接触过)。

如果企业内只有一套ERP系统,那么数据就已经是一致的了,为数据抽取提供了方便。

如果企业内除了ERP外还有其他系统,则数据抽取会变得复杂。

因为目前的ERP系统的数据模型都非常复杂,可能有几百几千个表,并且较难理解。

直接在ERP系统上建立数据捕获和抽取是非常复杂的。

最好的办法是购买能针对ERP系统数据抽取提供功能的ETL工具,将ERP内部的复杂性留给ETL厂商处理。

10直接连接数据库VS.ODBC

ExplaintheprosandconsofcommunicatingwithdatabasesnativelyversusODBC

通常连接数据库的方式分为两类,一类是直接连接,另一类是通过ODBC连接。

直接连接的方式主要是通过COBOL、PL/SQL、Transact-SQL等方式连接数据库。

这种方式的优点是运行性能高,可以使用DBMS提供的一些特殊功能。

缺点是通用性差。

ODBC是为windows应用程序访问数据库提供的一组接口。

ODBC的优点是灵活性,通过改变驱动和连接方式可以使用不同的数据库。

ODBC方式的缺点是性能差。

使用ODBC连接方式实现ETL的话,在ETL程序和至少要有两层,分别是ODBCManager层和ODBCDriver层。

另外,使用ODBC方式不能使用DBMS提供的一些特殊的功能。

11简述出三种变化数据捕获技术及其优缺点

Describethreechangedatacapture(CDC)practicesandtheprosandconsofeach

变化数据捕获(CDC)技术是ETL工作中的重点和难点,通常需要在增量抽取时完成。

实现变化数据捕获时最理想的是找到源系统的DBA。

如果不能找到,就需要ETL项目组自己进行检测数据的变化。

下面是一些常用的技术。

11.1采用审计列

审计列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。

应用程序在对该表的数据进行操作时,同时更新这些字段,或者建立触发器来更新这些字段。

采用这种方式进行变化数据捕获的优点是方便,容易实现。

缺点是如果操作型系统没有相应的审计字段,需要改变已有的操作型系统的数据结构,以保证获取过程涉及的每张表都有审计字段。

11.2数据库日志

DBMS日志获取是一种通过DBMS提供的日志系统来获得变化的数据。

它的优点是对数据库或访问数据库的操作系统的影响最小。

缺点是要求DBMS支持,并且对日志记录的格式非常了解。

11.3全表扫描

全表扫描或者全表导出文件后进行扫描对比也可以进行变化数据捕获,尤其是捕获删除的数据时。

这种方法的优点是,思路清晰,适应面广,缺点是效率比较差。

11.4触发器

但触发器的缺陷也是显而易见的,使用触发器请注意以下几点:

1)触发器通常很隐蔽,换句话说,易忘记,特别在检查性能和逻辑问题时。

2)长时间运行的触发器会严重减慢数据操作,特别是在数据频繁修改的数据库中。

3)不记录日志的更新不会引起DML触发器的触发(如WRITETEXT、Trunactetable及批量插入操作)。

4)约束通常比触发器运行更快。

5)处理某些逻辑时,存储过程通常比触发器要更易维

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1