ETL简介和关于ETL的一些问题

关于 E T L 的 相关内容:

  • 什么是数据挖掘(工程师)
数据挖掘(Data Mining),又称为数据库中的知识发现(Knowledge Discovery in Database, KDD),就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程,简单的说,数据挖掘就是从大量数据中提取或“挖掘”知识。
  • 什么是ETL(工程师) — 数据仓库技术

点击查看源网页

Extraction-Transformation-Loading的缩写,中文名称为数据抽取、转换和加载。

ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
我们不制造数据,我们只是数据的搬运工。
ETL工程师 必杀技: 乾坤大挪移(主旨,乃在颠倒一刚一柔、一阴一阳的乾坤二气,随意而行)
ETL工程师执手中数行sql即可将亿万数据来回腾挪,至若切中肯綮,则批郤导窾 [pī xì dǎo kuǎn] 		,游刃有余,官止神行, 事毕善刀而藏,不留名姓。
内家心法: 《西阔(sql)心经》 武器:海巫(hive), 海多蒲(hadoop), 海百石(hbase)
  • 什么逻辑数据映射?他对ETL 项目组的作用是什么
逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息:

        -目标表名:

        -目标列名:

        -目标表类型:注明是事实表、维度表或支架维度表。

        -SCD类型:对于维度表而言。

        -源数据库名:源数据库的实例名,或者连接字符串。

        -源表名:

        -源列名:

        -转换方法:需要对源数据做的操作,如Sum(amount)等。

逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL策略。在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。

逻辑数据映射分为两种:
1 : 模型映射:
    从源模型到DW目标模型之间的映射类型有:
    一对一:一个源模型的数据实体只对应一个目标模型的数据实体。如果源类型与目标类型一致,则直接映射。如果两者间类型不一样,则必须经过转换映射。
    一对多:一个源模型的数据实体只对应多个目标模型的数据实体。在同一个数据存储空间,常常出现会一个源实体拆分为多个目标实体的情况下。在不同的存储空间中,结果会对应到不同的存储空间的实体。
    一对零:一个源模型的数据实体没有与目标模型的数据实体有对应,它不在我们处理的计划范围之内。
    零对一:一个目标模型的数据实体没有与任何一个源数据实体对应起来。例如只是根据设计考虑,时间维表等。
    多对一:多个源模型的数据实体只对应一个目标模型的数据实体。
    多对多:多个源模型的数据实体对应多个目标模型的数据实体。

2: 属性映射
    一对一:源实体的一个数据属性列只对应目标实体的一个数据属性列。如果源类型与目标类型一致,则直接映射。如果两者间类型不一样,则必须经过转换映射。
    一对多:源实体的一个数据属性列只对应目标实体的多个数据属性列。在同一个实体中,常常出现会一个源属性列拆分为目标的多个属性列情况。在不同实体中,结果会对应到不同的实体的属列。
    一对零:一个源实体的数据属性列没有与目标实体的数据属性列有对应,它不在我们处理的计划范围之内。
    零对一:一个目标实体的数据属性列没有与任何一个源数据属性列对应起来。例如只是根据设计考虑,维表和事实表中的时间戳属性,代理健等。
    多对一:源实体的多个数据属性列只对应目标实体的一个数据属性列。
    多对多:源实体的多个数据属性列对应目标实体的多个数据属性列。

  • 作用是:
1 为开发者传送更为清晰的数据流信息。映射关系包括有关数据在存储到DW前所经历的各种变化的信息,对于开发过程中数据的追踪审查过程非常重要。

2 把ETL过程的信息归纳为元数据,将数据源结构,目标结构,数据转换规则,映射关系,数据的上下文等元数据保存在存储知识库中,为元数据消费者提供很好的参考信息,追踪数据来源与转换信息,有助于设计人员理解系统环境变化所造成的影响;
  • ETL的四个基本过程
数据仓库构建方法中,ETL的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取

(extract)、清洗(clean)、一致性处理(comform)和交付(delivery),简称为ECCD。

1.抽取阶段的主要任务是:

     读取源系统的数据模型。

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

     变化数据捕获。

     抽取数据到数据准备区。

2.清洗阶段的主要任务是:

     清洗并增补列的属性。

     清洗并增补数据结构。

     清洗并增补数据规则。

     增补复杂的业务规则。

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

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

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

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

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

     去除重复数据。

     国际化处理。

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

4.交付阶段的主要任务是:

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

     产生日期维度。

     加载退化维度。

     加载子维度。

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

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

     加载多值维度。

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

     加载文本事实到维度表。

     处理事实表的代理键。

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

     加载和更新聚集。

     将处理好的数据加载到数据仓库。
  • 数据质量检查的四大类是什么,为每类提供一种实现技术

​ : 数据质量检查是ETL工作中非常重要的一步,主要关注一下四个方面。

1.正确性检查(Corret)
  检查数据值及其描述是否真实的反映了客观事务。例如地址的描述是否完全。
2.明确性检查(Unambiguous)
  检查数据值及其描述是否只有一个意思或者只有一个解释。例如地名相同的两个县需要加区分方法。
3.一致性检查(Consistent)
  检查数据值及其描述是否统一的采用固定的约定符号来表示。例如币别中人民币用'CNY'。
4.完全性检查(Complete)
  完全性有两个需要检查的地方,一个是检查字段的数据值及其描述是否完全。例如检查是否有空值。另一个是检查记录的合计值是否完全,有没有遗忘某些条件。

  • 为什么ETL的过程中要对日期进行特殊处理
在数据仓库的项目中,分析是主导需求,而基于日期和时间的分析更是占了很大的比重。而在操作型源系统中,日期通常都是SQL的DATETIME型的。如果在分析时,使用SQL对这种类型的字段临时处理会出现一些问题,如效率很差,不同的用户会采用不同的格式化方法导致报表不统一。所以,在数据仓库的建模时都会建立日期维度表和时间维度表,将用到的和日期相关的描述都冗余到该表中。

但是,并不是所有的日期都被转化为日期维度表的外键。日期维度表中的记录是有限的,有些日期如生日等可能会比日期维度表中记录的最小日期还要早,这类字段可以直接在数据仓库中保存SQL的DATETIME型。而像购买日期等与分析的业务紧密相关的通常都需要转化为日期维度表的外键,可以用日期维度表中统一的描述信息进行分析。

你可能感兴趣的:(学习笔记)