ETL方法与过程讲解

1 ETL基本概念和术语

1.1 ETL

Extract-Transform-Load的缩写,数据抽取(Extract)、转换(Transform)、装载(Load)的过程。

1.2 DW

DataWarehousing,根据Bill.Inmon的定义,“数据仓库是面向主题的、集成的、稳定的、随时间变化的,主要用于决策支持的数据库系统”。

1.3 MetaData

元数据,就是描述数据的数据,指在数据仓库建设过程中所产生的有关数据源定义、目标定义、转换规则等相关的关键数据。

在了解ETL技术的同时,也要了解什么是
数据仓库
再来了解
ETL(数据仓库技术)

1.4 ETL在数据仓库中的位置

 

 

1.5 数据质量

  • 正确性(Accuracy):数据是否正确体现在现实或可证实的来源
  • 完整性(Integrity):数据之间的参照完整性是否存在或一致
  • 致性(Consistency):数据是否被一致的定义或理解
  • 完备性(Completeness):所有需要的数据是否都存在
  • 有效性(Validity):数据是否在企业定义的可接受的范围之内
  • 时效性(Timeliness):数据在需要的时间是否有效
  • 可获取性(Accessbility):数据是否易于获取、易于理解和易于使用

1.6 数据质量原因

  • 业务系统不同时期数据模型不一致
  • 业务系统不同时期业务过程有变化
  • 各个源系统之间相关信息不一致
  • 遗留系统和新业务、管理系统数据集成不完备带来的不一致性
  • 源系统缺少输入验证过程,不能阻止非法格式的数据进入系统
  • 可以验证但不能改正数据,验证程序不能发现格式正确但内容不正确的错误
  • 源系统不受控制的更改,而这种更改不能及时的传播到受影响的系统
  • 数据由多个交叉的访问界面,难以统一管理数据质量问题
  • 缺少参照完整性检查低劣的源系统设计
  • 数据转换错误,比如ETL过程错误或数据迁移过程的错误
  • 源系统与数据仓库系统的数据组织方式完全不同

1.7 数据转换

  • 空值处理
  • 规范化数据格式
  • 拆分数据
  • 验证数据合法性
  • 数据替换
  • 实现数据规则过滤
  • 数据排序
  • 数据类型统一转换

2 逻辑架构图

2.1 Extract

  • 设计原则 
    • 为提高ETL效率,数据在进入ETL系统后的EXF文件都将转换为Flat Text文件格式
    • 从ETL程序设计的灵活性和整体结构的一致性考虑,尽量采用Pull的方式,减少对源系统的影响和对其他开发队伍的依赖,并减少网络压力
    • 由于Batch Windows的限制,如果日源数据量大于5GB则必须考虑采用Push的方式以提高传送速度,如,可以由源系统将数据转换为Flat Text文件后,由ETL程序采用FTP的方式进行传送
    • EXF的文件格式接近数据源的数据结构定义
    • 在Extract过程中过滤数据仓库不需要的数据记录和字段
  • Push和Pull 
    • Push 
      在源系统上根据定义的数据格式将每日增量数据生成数据文件,再通过FTP或文件拷贝的方式传送给ETL程序处理。
    • Pull 
      由ETL程序通过DRDA或ODBC等数据库协议直接访问源数据库获取所需数据进行处理。

2.2 数据转换过程中产生的文件

  • EXF (Extracted Format) 
    由数据源Extract产生的文件,文件结构与Source相似,经过过滤,部分字段被忽略。
  • CIF (Common Interface Format) 
    CIF是ETL经过C/S/S过程产生的中间数据文件。
  • PLF (Pre-Load Format) 
    经过数据转换,用于直接加载到数据仓库的文本文件,其数据结构与数据仓库中的表定义一致。

3 数据处理流程图

 

4 数据对照开发流程

 

  1. 收集整理所有数据源,定义源数据结构(与EXF相同)
  2. 根据物理模型设计定义数据仓库数据(与PLF相同)结构
  3. 设计源数据表(文件)与数据仓库数据表对应关系(Table Mapping),确定Pilot的数据源范围
  4. 设计源数据字段与数据仓库字段的数据对照
  5. 设计CIF的数据结构
  6. 设计源数据字段-EXF-CIF-PLF-数据仓库数据字段的数据对照
posted @ 2019-08-30 16:22  ashaff  阅读(1055)  评论(0编辑  收藏  举报