本文转载自:http://www.cnblogs.com/evencao/archive/2013/06/14/3135529.html

ETL在数据仓库中具有以下的几个特点:

数据流动具有周期性:

因为数据仓库中的数据量巨大,一般采用成熟的ETL工具去完成抽取、转换、加载,以降低设计开发的和维护的复杂度,使设计开发人员有更多的时间去专注于业务转化规则。

ETL是数据抽取、转换、加载的简写。它的一般过程是将数据源抽取出来,中间经过数据的清洗、转换,最后加载到目标表中。ETL的过程一般是批量的。

ETL的本质

1.用户应该理解ETL本质上就是数据从源到目标的过程。

2.大多数的ETL工具价格昂贵,宏观上一般都适合处理海量的数据,但是在微观上需要考虑ETL处理的不同情况。

3.元数据时ETL过程的重要体现,藐视了数据源的属性、数据源到目标库的转换规则,数据抽取历史记录等。

4.构建一个商业智能系统,设计开发人员更多的人喜欢在ETL开始之前先将所有的业务规则弄清楚。

影响ETL数据质量的关键因素:

  • 可能会有一部风数据因为客观或者人为的原因到时数据格式混乱。
  • 源系统设计存在不合理性
  • 在开发过程中,因为开发人员的错误或者设计人员对业务规则描述的问题,同样会导致数据质量出现问题。

保证数据质量的方法:

  首先用户必须遵守数据仓库项目中的数据源的质量要求,对业务源数据进行仔细分析,以便对数据源的任何错误或不规范的地方有相应的处理方法,如对错误进行修改或者舍弃

  其次,在保证数据源的质量之后,在设计ETl过程中,对每一个步骤应该有一个衡量数据质量的方法,需要重视ETL的每一个过程。

  最后,就是规范业务流程,保证ETL正确性,避免误删或者重复加载数据。

其中对质量的衡量有几种方式:

  • 1.定义的数据是否和实际值相同。
  • 2.指标数据是否符合业务规则。
  • 3.数据是否和业务源系统中的信息保持一致。
  • 4.数据时违背自然规律或者不符合常理。

主流的ETL工具有 Informatica PowerCenterDatastage。ETL 是商业智能的核心和灵魂。

详解ETL过程:

1.数据抽取

数据抽取就是从源系统中获取业务数据的过程。数据抽取时需要考虑很多的因素,(抽取时间,收取方式,抽取周期等)数据抽取有以下几种情况:

(1)如果业务操作系统数据库和数据仓库质检的数据库管理系统完全相同,只需要建立相应的连接关系就可以使用ETL工具直接访问,或者调用相应的SQL语句或者存储过程。

(2)若数据仓库系统和业务操作型数据库的数据管理器不相同,比较简单的方式是使用ETL工具导出成文本文件或者Execl文件,然后再进行统一的数据抽取。

(3)如果需要抽取的数据量非常的庞大,此时必须考虑增量抽取。

2.数据清洗

  数据清洗就是选择出有缺陷的数据,然后再将他们正确话和规范化,从而达到用户要求的数据质量标准。

3.数据转换

数据转换就是指从业务系统中抽取的源数据,然后再根据数据仓库模型的需求,进行一系列数据转换的过程。

数据转换是ETL过程中复杂度最高的过程,包括对数据不一致性的转换,业务指标的计算和某些数据的汇总,为决策系统提供数据支持。

ETL转换过程中可能包含几个方面:

  • 对空值进行处理:在进行加载是需要将空值替换成某一数据或者直接进行加载。
  • 对数据格式规范化:例如:统一将数值型转化为字符型
  • 根据业务需求进行字段的拆分和合并
  • 对缺失数据的替换:
  • 根据业务规则对数据进行过滤
  • 根据编码表进行数据唯一性的转换:

4.数据加载:

这是ETL的最后一笔,需要保证加载工具必须有高效的性能去完成数据加载,同时还需要考虑加载的时周期和数据加载的策略。

数据加载包括:

时间戳的加载方式,是比较常见的一种加载方式。

全表对比的加载方式、通过读取日志进行加载的方式、全表删除后再进行加载的方式。

5.ETL日志

ETL日志非常重要,它记录了ETL执行过程中的每一步信息。帮助系统维护人员进行监控,当然ETL日志也可以未做数据加载的一个策略。

ETL设计的规范要点:

1.在ETL设计之前,需要根据业务的需求确定所要分析的主题和数据结构。根据数据仓库的模型,考虑在ETL设计中是否增加预留字段和属性。

2.确定数据的粒度

3.ETL抽取周期的确定。

4.以增量抽取的方式作为ETL设计的重点,减少数据抽取的压力和抽取时间。

5.通常抽取盒清洗可以分成很多步骤

6.对异常情况进行处理。包括网络中断等情况进行处理,保证数据的正确性。

7.对ETL的运行管理和监控措施。

ETL的框架结构:

主要包括:ETL调度、抽取策略、转换策略、加载策略

统一调度室ETL中较为重要的功能。

1.自动调度方式

2.手动调度方式

数据仓库基础(二)ETL的更多相关文章

  1. 一脸懵逼学习Hive(数据仓库基础构架)

    Hive是什么?其体系结构简介*Hive的安装与管理*HiveQL数据类型,表以及表的操作*HiveQL查询数据***Hive的Java客户端** Hive的自定义函数UDF* 1:什么是Hive(一 ...

  2. 数据仓库系列之ETL中常见的增量抽取方式

    为了实现数据仓库中的更加高效的数据处理,今天和小黎子一起来探讨ETL系统中的增量抽取方式.增量抽取是数据仓库ETL(数据的抽取(extraction).转换(transformation)和装载(lo ...

  3. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  4. Bootstrap <基础二十九>面板(Panels)

    Bootstrap 面板(Panels).面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 <div> 元素添加 class .panel 和 class .pa ...

  5. Bootstrap <基础二十八>列表组

    列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...

  6. Bootstrap<基础二十七> 多媒体对象(Media Object)

    Bootstrap 中的多媒体对象(Media Object).这些抽象的对象样式用于创建各种类型的组件(比如:博客评论),我们可以在组件中使用图文混排,图像可以左对齐或者右对齐.媒体对象可以用更少的 ...

  7. Bootstrap <基础二十六>进度条

    Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...

  8. Bootstrap <基础二十五>警告(Alerts)

    警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个 ...

  9. Bootstrap<基础二十四> 缩略图

    Bootstrap 缩略图.大多数站点都需要在网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 ...

  10. Bootstrap <基础二十三>页面标题(Page Header)

    页面标题(Page Header)是个不错的功能,它会在网页标题四周添加适当的间距.当一个网页中有多个标题且每个标题之间需要添加一定的间距时,页面标题这个功能就显得特别有用.如需使用页面标题(Page ...

随机推荐

  1. ios中的coredata的使用

    Core Data数据持久化是对SQLite的一个升级,它是iOS集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类. (1)NSManagedObjectModel(被管 ...

  2. 解决 java.lang.IllegalThreadStateException: Thread already started. 错误

    extends:http://blog.csdn.net/liuhanhan512/article/details/7575386 android开发中,对线程的操作比较悲催,start一个线程后,必 ...

  3. Olivia Palermo & Johannes Huebl 模范情侣

    男才女貌,模范情侣-- 以后引用情侣时就用这个图了~ ref: http://bbs.55bbs.com/thread-8250584-1-1.html

  4. 7.20python线程(2)

    RLock 递归锁 线程事件

  5. HDU-1881 毕业bg (01背包变形)

    毕业bg Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...

  6. hdu1166 敌兵布阵【线段树】

    C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于 ...

  7. .NET中的类型对象

    .NET中的任何类型,都有对应的一个类型对象.类型对象和类型实例(类型创建的一个对象)不是同一个概念. 类型对象包含类型的静态字段和方法,当类访问静态方法静态字段,实例调用方法时就会去类型对象中查找静 ...

  8. 计蒜客 31459 - Trace - [线段树][2018ICPC徐州网络预赛G题]

    题目链接:https://nanti.jisuanke.com/t/31459 样例输入 3 1 4 4 1 3 3 样例输出 10 题意: 二维平面上给出 $n$ 个点,每个点坐标 $\left( ...

  9. postgresql+postgis+pgrouting安装步骤图解

    1.在此(https://www.bigsql.org/postgresql/installers.jsp/)下载postgresql(开源数据库,gis行业推荐使用); 2.在此(http://wi ...

  10. VS 2005 处理条件

    1. VS 设置断点; 2.VS 查找需要跟踪的内存地址,如果是指针,需要取指针存放地的地址; 3. 4.继续运行,直到内存内容被改写.