数据仓库基础(六)数据的ETL
本文转载自:http://www.cnblogs.com/evencao/p/3140487.html
ETL是数据抽取(Extract)、转换(Transform)、加载(Load)的简写,是构建数据仓库最重要的一步。
1.抽取
抽取时元数据进入到数据仓库的第一步。因为每个业务系统数据的质量不相同,所以需要对每个数据源建立不同的抽取程序。
抽取的主要功能:
提供数据匹配器的功能:这样使得程序可以与多种业务数据源相连接。
提供标准化的功能:抽取最重要的一个功能就是对数据类型的标准化,将业务数据和数据仓库中的数据类型统一。
提供批处理的服务:
提供过滤的功能:
2.清洗
清洗是源数据进入到数据仓库的第二步。目的是保证源数据的数据质量符合数据仓库的要求,同时保证数据的一致性。
清洗的主要功能:
数据修正:使用固定算法或者相应的数据源检查程序区验证信息是否准确。
数据标准化功能:将业务数据源的数据标准化,以满足数据仓库中的数据一致的要求。
匹配和合并功能:对抽取出来的数据进行重复验证,然后对重复数据进行单独合并。
3.转换
转换的功能:
对数据进行计算:根据业务需求的特点对业务源数据进行相关的计算,以满足数据仓库的要求。
对数据进行放大:根据实际的业务需求,为数据调价额外的信息,从而保证数据仓库的一致性和正确性。
4.加载:这是ETL的最后一步。主要负责将数据加载到目标表中,这些目标表可能是事实表,也可能是维度表。
定义ETL的流程
1.从源数据抽取到ODS数据缓冲区:
ODS数据缓冲区是指数据临时存储区域,它基本上与源系统的数据结构保持一致。
2.从ODS数据缓冲区到ODS统一信息视图区:一般来说是定时抽取的,除了第一次做全量抽取外,其余时间都是做增量抽取,可以按照某种更新策略进行抽取。
3.从ODS统一信息视图区抽取到数据仓库:数据仓库是根据业务需求,对企业受进行整合,同时又是存储历史数据的地方
4.从数据仓库抽取到数据集市:数据集市是针对某个主题域、部门或者是特定用户的数据集合。
ETL的加载方法
1.以时间戳作为加载条件:
利用时间戳的方式对目标表进行数据加载是相对简单的一种方法。这种时间戳作为数据加载条件的
优点是使ETL设计简单清晰,抽取的效率相对较高,并且可以实现ETL数据加载的需求。
缺点是需要对业务数据源的时间戳进行维护。
2利用源表的日志信息对目标表进行加载:在业务系统中为源表中的数据增加、删除、修改时,及时更新该源表的日志表。
优点是:不需要更改数据源表结构和数据,降低了数据加载的风险。
缺点是需要维护日志表数据,增加了系统的开销。
3.进行全表对比的方式进行数据的加载
是对目标表的每一条数据进行比较,当目标表不存在该主键时,进行插入操作,如果该主键值已经存在,则需要对其余字段进行比较,如果有不相同的数值,则需要进行更新操作。
优点:安全性高
缺点:流程较为复杂,一般抽取的效率较低。
4.全表删除后再进行数据加载的方式`
利用ETL构建企业级数据仓库
1.在构建数据仓库的时候,通常的做法是将业务系统部署在一台服务器,而数据仓库部署在另一台服务器中。
2.构建企业级数据仓库需要充分发挥时间戳的作用。
3.在构建企业数据仓库时,可以使用ETL过程中产生的日志信息区查看数据处理的情况。
数据仓库基础(六)数据的ETL的更多相关文章
- 数据仓库基础(二)ETL
本文转载自:http://www.cnblogs.com/evencao/archive/2013/06/14/3135529.html ETL在数据仓库中具有以下的几个特点: 数据流动具有周期性: ...
- <Android基础> (六) 数据存储 Part 1 文件存储方式
第六章 数据存储 6.1 持久化技术 持久化技术指将内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失. 主要有三种方式用于简单地实现数据持久化功能:文件存储.S ...
- <Android基础> (六) 数据存储 Part 3 SQLite数据库存储
6.4 SQLite数据库存储 SQLite是一种轻量级的关系型数据库,运算速度快,占用资源少. 6.4.1 创建数据库 Android为了管理数据库,专门提供了SQLiteOpenHelper帮助类 ...
- <Android基础> (六) 数据存储 Part 2 SharedPreferences方式
6.3 SharedPreferences存储 SharedPreferences使用键值对的方式来存储数据.同时支持多种不同的数据类型. 6.3.1 将数据存储到SharedPreferences中 ...
- 一脸懵逼学习Hive(数据仓库基础构架)
Hive是什么?其体系结构简介*Hive的安装与管理*HiveQL数据类型,表以及表的操作*HiveQL查询数据***Hive的Java客户端** Hive的自定义函数UDF* 1:什么是Hive(一 ...
- Bootstrap<基础六> 表单
Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不同样式的表单. 表单布局 Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 垂直或基本表单 ...
- 大数据之ETL设计详解
ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败.ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更 ...
- C#_02.15_基础六_.NET类
C#_02.15_基础六_.NET类 一.类继承是一个类在另一个类的基础上进行的扩展. 继承的子类拥有父类的全部成员.索引子类拥有本身的全部成员以及父类的全部成员. 可以对基类成员进行隐藏,如果必须的 ...
- {Django基础六之ORM中的锁和事务}一 锁 二 事务
Django基础六之ORM中的锁和事务 本节目录 一 锁 二 事务 一 锁 行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在 ...
随机推荐
- 判断强联通图中每条边是否只在一个环上(hdu3594)
hdu3594 Cactus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- python-django开发学习笔记二
1.简述 1.1 开发环境 该笔记所基于的开发环境为:windows8.python2.7.5.psycopg2-2.4.2.django1.5.4.pyCharm-2.7.3.以上所描述的软件.插件 ...
- URAL 1277 - Cops and Thieves - [无向图点带权的最小点割]
题目链接:https://cn.vjudge.net/problem/URAL-1277 The Galaxy Police (Galaxpol) found out that a notorious ...
- UESTC 1059 - 秋实大哥与小朋友
题目链接:http://acm.uestc.edu.cn/#/problem/show/1059 Time Limit: 3000/1000MS (Java/Others) Memory Li ...
- mongostat和mongotop对mongodb数据库运行状态进行监控
--mongostat工具是mongdb自带的监控工具,可以用来监控mongodb当前状态下的运行情况: [root@slave2 ~]# /usr/local/mongodb341/bin/mong ...
- linux:任务计划crontab
crontab 简介 crontab 命令常见于 Unix 和类 Unix 的操作系统之中(Linux 就属于类 Unix 操作系统),用于设置周期性被执行的指令. crontab 命令从输入设备读取 ...
- ArcGIS API for javascript开发笔记(五)——GP服务调用之GP模型的发布及使用详解
感谢一路走来默默陪伴和支持的你~~~ ----------------欢迎来访,拒绝转载---------------- 关于GP模型的制作请点我! 一.GP发布 ArcGIS Desktop可以作为 ...
- AmazonOrder xml web语义化
XML Processing Modules — Python 3.7.1 documentation https://docs.python.org/3.7/library/xml.html#xml ...
- 【make install】自定义安装目录,添加动态链接库 【--prefix】 【ldconfig】 【LD_LIBRARY_PATH】
怎么卸载make install安装的软件? https://www.zhihu.com/question/20092756 怎么指定安装目录以及对应的添加动态库的方法 linux库在不指定安装路径时 ...
- 洛谷P1710 地铁涨价 图论
其实是个傻逼题但是我太傻逼了然后就错了无数遍总算A了 觉得不写个题解真是亏了 其实是 之前想了个超时想法 然后还自以为很对?后来看了题解发现还是比较妙的哦 于是就想着那还是发个题解记录下趴quq 正解 ...