数据仓库基础(六)数据的ETL

摘要:
其目的是确保源数据的数据质量符合数据仓库的要求,并确保数据的一致性。

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》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇angularJs:双向数据绑定Node.js中的模块接口module.exports浅析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Hive函数大全-完整版

Hive函数大全–完整版 现在虽然有很多SQL ON Hadoop的解决方案,像Spark SQL、Impala、Presto等等,但就目前来看,在基于Hadoop的大数据分析平台、数据仓库中,Hive仍然是不可替代的角色。尽管它的相应延迟大,尽管它启动MapReduce的时间相当长,但是它太方便、功能太强大了,做离线批量计算、ad-hoc查询甚至是实现数...

大数据算法(一)亚线性算法

来源:大数据算法 王宏志 一、概述 大数据定义:在给定的资源约束下,以大数据为输入,在给定时间约束内可以生成满足给定约束结果的算法。 大数据特点:4V 大数据算法可以不是: 精确算法 内存算法 串行算法 仅在电子计算机上运行的算法 大数据算法不仅是: 云计算 MapReduce 大数据分析和挖掘的算法 难度: 访问全部数据时间过长 读取部分数据 亚...

mysql ,source 导入数据, mysqldump 导出数据,只导表结构

1.mysql 导入数据    mysql  数据库名 -u 用户名 -p 密码< 文件名       如:mysql -u root -p admin < test.sql (如果sql路径不是当前路径,改成绝对路径 mysql -u root -p admin < /home/root/test.sql) 2. source 导入数据...

揭秘万亿级别的全域数据统计分析平台技术架构演进

作者:友盟+技术专家 王翔 截止到2019年6月,友盟+已累计为180万移动应用和815万家网站提供10年的专业稳定数据服务;当前友盟+每天接收日志量达万亿级别,实现每秒处理2亿次事件的能力,相当于每眨眼一次,就有2亿数据被刷新了!友盟+数据存量高达50PB,相当于A4纸正反面写满数字并装满15万辆卡车;且还在持续快速增涨,如何搭建一个高可用、高安全、高性...

ecshop 二次开发 函数列表大全

最近进行ecshop的二次开发,整理了一部分的函数,另外在ecshop论坛上面也发现了很多函数说明,整理汇总如下,供大家参考。 所有函数功能说明: lib_time.phpgmtime() P: 获得当前格林威治时间的时间戳 /$0server_timezone() P: 获得服务器的时区 /$0local_mktime($hour = NULL , $mi...

HBase1.2官方文档——ACID

原文链接:http://hbase.apache.org/acid-semantics.html 关于这篇文档 Apache HBase (TM) 不是一个适用于ACID的数据库。但是它可以保证特定的属性。这篇说明列举了HBase中ACID的属性 定义 为了共同的词汇表,我们定义以下术语: Atomicity原子性 一个操作是原子的,它要么整体都...