多源ETL考虑

ETL解决问题:
1.数据分散问题
2.数据不清洁问题
3.对数据格式不统一

ETL 过程模型

  1. 元数据库
     元数据(metadata)是定义和描述其它数据的数据 关于数据内容、质量、状况和其他特性的信息,在整个数据抽取转换加载过程中起到基础的作用。元数据使用户可以掌握数据的历史情况,如数据从哪里来,流通时间多长,更新频率是多大,数据元素的含义是什么,对它已经进行了哪些计算、转换和筛选等等。
        元数据具有下列属性:
    (1)描述性,元数据是描述数据的数据,这是元数据的最本质的特征。
    (2)动态性,元数据不是静止不变的,它随着所描述对象的变化而变化。
    (3)多样性,元数据的类型多样。
    (4)复杂性,一方面元数据既可以是集合概念也可以是个体概念,元数据中还可以包括其它的元数据;另一方面对不同的描述对象,有些元数据项是必须有的,而有些却不一定强求,即强制性的元数据与选择性的元数据共存。
    (5)多层次性,这是由元数据所描述对象的多层次和元数据使用对象的多层次性决定的。
    (6)支撑性,元数据相对描述对象而言处于次要的地位,但又是必不可少的,起支撑的作用。
        元数据库是以一定的组织方式存储在一起的相关的元数据集合。

元数据可以应该包括下列7个组件。
    (1)环境状况组件。环境状况组件主要是用于监控网络和源数据的状况,它包括:网络状态,各种源数据状态,最佳抽取时间。网络状态和各种源数据状态的数据可以通过定时对网络状况和源数据状况探测自动获取。通过对这两组数据的历史记录分析可以生成最佳抽取时间。
    (2)基本组件。基本组件包括数据源数据库表结构、数据源数据库表属性、数据仓库表结构、数据仓库表属性,等等。基本构件和其它元数据最大的区别在于它是具有版本标识的数据,具有版本标识的数据在很长的一段时间内可以跟踪数据的变化情况。基本构件主要是对源数据的特征进行描述,它包括:可以提供源数据的数据库名,数据库编号,这些数据库的表,表的编号,表中的属性,属性的编号,以及可以提供源数据的文件系统的文件类型、分隔符、转换为数据库系统中目标表的表名等。
    (3)数据状态组件。数据状态组件用于标识数据仓库中的数据是“活性”的还是“惰性”的。由于数据仓库中的数据都是基于共享设计的,因而当将数据仓库中的数据作为源数据进行抽取和转换时,其中的某些数据可能包括一些误导信息,因而对于这些表就需要数据状态字段对它进行控制。
    (4)存取模式组件。存取模式组件是用于确定异构的源数据什么时候将什么数据迁移到数据仓库中,它包括:存取数据的类型、总数以及频率等。在并行环境下,它可以确定如何物理地分离数据,这样可以极大地提高数据传送的效率。
    (5)数据质量要求组件。数据质量规则定义了源数据中的质量要求,它包括了数据源的编号、错误类型编号、可能的修改规则编号等。
    (6)映射规则组件。映射规则定义了数据由数据源到数据仓库映射的规则,它包括:源字段的编号;简单的属性到属性的映射;字段类型的转换;多个源表到一个目标表之间复杂的转换;命名的改变;关键字的改变;等等。
    (7)抽取日志组件。抽取日志组件记录了对数据仓库中的数据进行的每次操作的时间、操作方式、操作过程以及结果。这些信息对于数据仓库的维护非常有用,拥有这些信息可以对ETL过程中的每一步进行监控。
 

  1. 数据预抽取
        按照元数据定义的内容、频率和规则,将保存在有关数据源中的数据抽取出来,存放到另外的数据库中,并将预抽取操作记录在元数据库中。

  2. 数据质量检验
        数据质量是数据使用的适合性。数据质量要求是关于数据明示的、通常隐含的或必须履行的需求或期望。     数据质量检验是依据元数据中定义的各数据质量要求,通过判断,对数据与质量要求的符合性进行评价,并将数据质量检验操作记录在元数据库中。     数据质量主要有两个方面的问题:一个是单数据源数据质量问题,另一个是多数据源的数据交互集成时的数据质量问题。