1. What is a logical data mapping and what does it mean to the ETL team?
什么是逻辑数据映射?它对ETL项目组的作用是什么?
答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息:
目标表名:
目标列名:
目标表类型:注明是事实表、维度表或支架维度表。
SCD类型:对于维度表而言。
源数据库名:源数据库的实例名,或者连接字符串。
源表名:
源列名:
转换方法:需要对源数据做的操作,如Sum(amount)等。
逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL策略。在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。
2. What are the primary goals of the data discovery phase of the data warehouse project?
在数据仓库项目中,数据探索阶段的主要目的是什么?
答:在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data Discovery Phase),另一个是异常数据检测阶段。
数据探索阶段包括以下内容:
1.收集所有的源系统的文档、数据字典等内容。
2.收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。
3.判断出数据的起始来源(System-of-Record)。
4.通过数据概况(Data Profiling)来对源系统的数据关系进行分析。
数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。
3. 存储过程和函数的区别?
答:存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。
4. 事务是什么?
答:事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。
隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
5. 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事
前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。
6. What are the four basic Data Flow steps of an ETL process?
在ETL过程中四个基本的过程分别是什么?
答:Kimball数据仓库构建方法中,ETL的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取(extract)、清洗(clean)、一致性处理(comform)和交付(delivery),简称为ECCD。
1.抽取阶段的主要任务是:
读取源系统的数据模型。
连接并访问源系统的数据。
变化数据捕获。
抽取数据到数据准备区。
2.清洗阶段的主要任务是:
清洗并增补列的属性。
清洗并增补数据结构。
清洗并增补数据规则。
增补复杂的业务规则。
建立元数据库描述数据质量。
将清洗后的数据保存到数据准备区。
3.一致性处理阶段的主要任务是:
一致性处理业务标签,即维度表中的描述属性。
一致性处理业务度量及性能指标,通常是事实表中的事实。
去除重复数据。
国际化处理。
将一致性处理后的数据保存到数据准备区。
4.交付阶段的主要任务是:
加载星型的和经过雪花处理的维度表数据。
产生日期维度。
加载退化维度。
加载子维度。
加载1、2、3型的缓慢变化维度。
处理迟到的维度和迟到的事实。
加载多值维度。
加载有复杂层级结构的维度。
加载文本事实到维度表。
处理事实表的代理键。
加载三个基本类型的事实表数据。
加载和更新聚集。
将处理好的数据加载到数据仓库。
从这个任务列表中可以看出,ETL的过程和数据仓库建模的过程结合的非常紧密。换句话说,ETL系统的设计应该和目标表的设计同时开始。通常来说,数据仓库架构师和ETL系统设计师是同一个人。
7. What are the permissible data structures for the data staging area? Briefly describe the pros and cons of each.
在数据准备区中允许使用的数据结构有哪些?各有什么优缺点?
答:1.固定格式的文本文件。(Flat File)
Flat File指的是一种保存在系统上的一种文本文件格式,它以类似数据库的表的方式用行和列来保存数据。这种文件格式经常用来进行数据交换。用于保存数据不太合适。
2.XML数据集。
多用于数据交换,用户保存数据不太合适。
3.关系数据库的表。
保存数据的较理想选择。
4.独立的数据库表。
独立的数据库表一般指建立的表和其他表没有外键约束关系。这样的表多用于数据处理。
5.三范式或者关系型模型。
6.非关系型数据源。
非关系型数据源一般包括COBOL copy books、VSAM文件、Flat文件、Spreadsheets等。
7.维度模型。
8.原子事实表和聚集事实表。
9.代理键查表
8. When should data be set to disk for safekeeping during the ETL?
简述ETL过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?
答:Staging的意思就是将数据写到磁盘上。出于安全及ETL能方便重新开始,在数据准备区(Staging Area)中的每个步骤中都应该将数据写到磁盘上,即生成文本文件或者将建立关系表保存数据,而不应该以数据不落地方式直接进行ETL。
例如,在数据抽取阶段,我们需要连接到源系统,为了对源系统的影响尽量小,我们需要将抽取的数据保存成文本文件或者放入数据准备区的表中,这样,当ETL过程出现错误而失败时,我们就可以从这些文本文件开始ETL,而不需要再次影响源系统。
9. What is the best approach for handling ERP source data?
从ERP源系统中抽取数据最好的方法是什么?
答:ERP系统的产生是为了解决企业内异构数据的整合。这个问题也是数据仓库系统面临的主要问题。ERP的解决方案是将企业内的各个应用(包括销售、会计、人力资源、库存和产品等)建立在相同的平台和相同的应用框架下,即在应用操作层将企业内的数据进行了一致性处理。而数据仓库是在应用操作层之上建立一致性的规则并进行一致性处理。目前比较流行的ERP系统有SAP、PeopleSoft、Oracle、Baan和J.D.EDwards(大部分没接触过)。
如果企业内只有一套ERP系统,那么数据就已经是一致的了,为数据抽取提供了方便。如果企业内除了ERP外还有其他系统,则数据抽取会变得复杂。因为目前的ERP系统的数据模型都非常复杂,可能有几百几千个表,并且较难理解。直接在ERP系统上建立数据捕获和抽取是非常复杂的。最好的办法是购买能针对ERP系统数据抽取提供功能的ETL工具,将ERP内部的复杂性留给ETL厂商处理。
10. Describe three change data capture (CDC) practices and the pros and cons of each.
简述出三种变化数据捕获技术及其优缺点。
答:变化数据捕获(CDC)技术是ETL工作中的重点和难点,通常需要在增量抽取时完成。实现变化数据捕获时最理想的是到源系统的DBA。如果不能到,就需要ETL项目组自己进行检测数据的变化。下面是一些常用的技术。
1.采用审计列字符串是什么数据结构
审计列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。应用程序在对该表的数据进行操作时,同时更新这些字段,或者建立触发器来更新这些字段。采用这种方式进行变化数据捕获的优点是方便,容易实现。缺点是如果操作型系统没有相应的审计字段,需要改变已有的操作型系统的数据结构,以保证获取过程涉及的每张表都有审计字段。
2.数据库日志
DBMS日志获取是一种通过DBMS提供的日志系统来获得变化的数据。它的优点是对数据库或访问数据库的操作系统的影响最小。缺点是要求DBMS支持,并且对日志记录的格式非常了解。
3.全表扫描
全表扫描或者全表导出文件后进行扫描对比也可以进行变化数据捕获,尤其是捕获删除的数据时。这种方法的优点是,思路清晰,适应面广,缺点是效率比较差。
11. How can data quality be quantified in the data warehouse?
如何来量化数据仓库中的数据质量?
答:在数据仓库项目中,通常通过不规则数据的检测工作(Anomaly Detection)来量化源系统的数据质量。除非成立专门的数据质量调查项目组,否则这个工作应该由ETL项目组完成。通常可以采用分组SQL来检查数据是否符合域的定义规则。
对于数据量小的表,可以直接使用类似下面的SQL完成。
select state, count(*) from order_detail group by state
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论