数据仓库基础(二)ETL

本文转载自: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 PowerCenterDatastageETL 是商业智能的核心和灵魂

 

详解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.手动调度方式

转载于:https://www.cnblogs.com/shujuxiong/p/9105751.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSV出力ボタンラッパー(asp.net)[イベントの作り方に役立つ]

为什么80%的码农都做不了架构师&#xff1f;>>> /// <summary> /// CSV出力ボタンラッパー。 /// </summary> public class CsvOutputButtonWrapper { /// <summary> /// CSV出力ボタン /// </summary> …

结构体变量字节填充

二&#xff1a; &#xff08;1&#xff09;sizeof也可以对一个函数调用求值&#xff0c;其结果是函数返回类型的大小&#xff0c;函数并不会被调用。 &#xff08;2&#xff09;终于搞懂struct结构体内存分配问题了&#xff0c;结构体中各个成员字节对齐遵循以下几个原则&#…

iOS GoldRaccoon第三方FTP文件夹下载失败原因

一、问题描述&#xff1a;1.下载失败报错&#xff1a; 文件写入失败Error DomainNSCocoaErrorDomain Code512 "未能将文件“jquery_1_10_2_min.js”存储到文件夹“Q20180104153006399”中。" 原因及解决方法&#xff1a;文件夹下均为文件&#xff0c;不包含子文件夹&…

项目UML设计(团队)

团队信息 队名&#xff1a;massivehard 组长&#xff1a;晓辉 队员&#xff1a;一飞&#xff0c;帅珍&#xff0c;斌豪&#xff0c;锦谋 团队分工 模块序号模块名模块具体内容1日记编辑添加随笔2照片选择选择照片识别3消息模块收发消息4个人信息账号&#xff0c;密码等负责人分…

安装asp.net mvc4后mvc3项目编译报错

为什么80%的码农都做不了架构师&#xff1f;>>> 安装asp.net mvc4之后&#xff0c;之前的mvc3项目编译时报这个错“The type System.Web.Mvc.ModelClientValidationRule exists in both c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.M…

SqlServer SqlBulkCopy批量插入 -- 多张表同时插入(事务)

这段时间在解决一个多个表需要同时插入大量数据的问题&#xff0c;于是在网上找了下&#xff0c;查到说用SqlBulkCopy效率很高&#xff0c;实验后确实很快&#xff0c;10万条数据只要4秒钟&#xff0c;用ef要用40秒。但是我的还需两张表同时插入&#xff0c;且需要用到事务&…

一介书生,仅此而已

喜欢写文章&#xff0c;所以很少发随笔。 嘛~其实是一开始就搞错随笔和文章的场景了&#xff0c;迁移太麻烦&#xff0c;有时间自己做个个人博客好了~~转载于:https://www.cnblogs.com/restartyang/p/7710907.html

POJ 3608 Bridge Across Islands 《挑战程序设计竞赛》

为什么80%的码农都做不了架构师&#xff1f;>>> POJ 3608 Bridge Across Islands跨岛大桥&#xff1a;在两个凸包小岛之间造桥&#xff0c;求最小距离&#xff1f;3.6与平面和空间打交道的计算几何 凸包 这题原始数据已经是凸包&#xff08;convex polygons&#x…

抓包(Charles工具入门)

一、charles工具简单使用 1、录制操作 录制请求、清空录制请求&#xff1a; 两种展示请求的视图方式&#xff1a; 2、录制请求的简单分析 &#xff08;1&#xff09;请求的总览页面Overview&#xff1a;可查看请求路径、请求方式、请求时间等有关该请求的内容 &#xff08;2&am…

探秘创造力

为什么80%的码农都做不了架构师&#xff1f;>>> 创造力&#xff0c;在很多行业和领域都被视为神奇的存在&#xff0c;大家都希望自己的创造力能够无限&#xff0c;感觉创造力已经被神话了。其实&#xff0c;一个简单问题可能很少人能够明确&#xff1a;”创造力是天…

2017.10.23解题报告

预计分数&#xff1a;100600160 实际分数&#xff1a;100800180 T1 题目描述 现在有一个字符串&#xff0c;每个字母出现的次数均为偶数。接下来我们把第一次出现的字母a和第二次出现的a连一条线&#xff0c;第三次出现的和四次出现的字母a连一条线&#xff0c;第五次出现的和六…

Chrome Android 60.X+ 不能自动播放audio音频的解决办法

Chrome Android等一些浏览器默认限制了自动播放音频视频等&#xff0c;需要用户有点击的动作后才可以播放。这样的原因在于很多用户流量需要付费&#xff0c;而限制了自动播放可以避免用户在不知情的情况下产生高额的流量费用。 在60.X版本之前&#xff0c;chrome://flags中有一…

(水一下)Linux启动步骤(面试题)

1.加载并初始化Linux内核2.配置硬件设备3.内核创建自发进程4.由用户决定是否进入手工引导模式5.init进程执行系统启动脚本6.进入多用户模式转载于:https://blog.51cto.com/12942223/2408649

【WebGL】《WebGL编程指南》读书笔记——第5章

一、前言 终于到了第五章了&#xff0c;貌似开始越来越复杂了。 二、正文 Example1&#xff1a;使用一个缓冲区去赋值多个顶点数据&#xff08;包含坐标及点大小&#xff09; function initVertexBuffers(gl) {var verticesSizes new Float32Array([0.0, 0.5, 10.0, -0.5, …

ngnix反向代理

https://blog.csdn.net/sherry_chan/article/details/79055211转载于:https://www.cnblogs.com/lwj820876312/p/9115308.html

框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明

2019独角兽企业重金招聘Python工程师标准>>> 在发布完&#xff1a;框架设计&#xff1a;实现数据的按需更新与插入的改进 之后&#xff1a; 有网友表示不理解&#xff0c;于是这里给出一篇简单的说明对比&#xff0c;表示下改进后好处。 一&#xff1a;场景一&#…

Java异常详解及如何处理

来源&#xff1a;Java异常详解及如何处理 简介 程序运行时&#xff0c;发生的不被期望的事件&#xff0c;它阻止了程序按照程序员的预期正常执行&#xff0c;这就是异常。异常发生时&#xff0c;是任程序自生自灭&#xff0c;立刻退出终止&#xff0c;还是输出错误给用户&…

端口以及服务常用cmd

netstat -ano 列出所有端口的情况 netstat -aon|findstr "49157" 查出特定端口的情况 tasklist|findstr "2720" 查看是哪个进程或者程序占用了PID端口的程序 打开任务管理器&#xff0c;切换到进程选项卡&#xff…

python学习笔记(二十八)日志模块

我们在写程序的时候经常会打一些日志来帮助我们查找问题&#xff0c;这次学习一下logging模块&#xff0c;在python里面如何操作日志。介绍一下logging模块&#xff0c;logging模块就是python里面用来操作日志的模块&#xff0c;logging模块中主要有4个类&#xff0c;分别负责不…

TransactionScope 的基本原理简介

C# 的事务编程 1 Db事务 DbConnection 中创建基于当前连接的 DbTransaction 2 使用TransactionScope ,创建环境事务 一旦创建&#xff0c;在这个环境包含的DbConnection 实例 都会根据连接字符串中的 Sqlserver 连接字符串支持&#xff0c;是否自动附加当前环境事务. 连接字符…