笔者参与了BI项目的ETL测试,为此学习了一些数据仓库的知识,现学现卖,给大家介绍介绍我眼中的ETL和数据仓库。
首先是传统的概念解释环节。
什么是BI呢,BI(Business Intelligence)即商务智能,它是一套完整的解决方案,用来将企业中现有的数据(原始数据或商业数据或业务数据等)进行有效的整合,快速准确地提供报表并提出决策依据,帮助企业做出明智的业务经营决策。
那什么是ETL呢,ETL(Extract,Transform,and Load)即数据的提取,转换和加载,ETL是将业务系统中的数据抽取出来经过数据清洗和转换再加载到数据仓库的一个过程。他可以把业务系统中分散的杂乱不堪的不标准不统一数据整合到一起,为企业的业务流程改进、监视时间、成本、质量以及控制提供分析依据。
数据仓库又是什么呢,数据仓库(Data Warehouse)顾名思义,是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。
都是存数据的,那数据仓库是不是和数据库差不多啊?
其实吧,在我看来数据仓库是数据库的定制版。是因为在数据量越来越大的当下,数据库这种面向事务的数据存储集合已经不能满足大量数据的商业分析需要,所以我们需要一个面向主题的、集成的、相对稳定的、能够反映历史变化的数据存储集合,这就是数据仓库。
什么叫面向主题呢?这个其实是相对于数据库而言的,举个栗子,有个用户购买了一本书,就数据库而言关心的主要是这一购买事务的发生并存储相关信息,而对于数据仓库而言,关心的是这个用户的购买行为,需要用到这一用户以往的购买事务信息,以及购买这本书的所有用户相关信息。所以面向主题的数据仓库在用于分析时需要用的到数据是巨大规模的,甚至会综合好几个信息系统,如mysql、sqlserver、MongoDB等。
什么叫集成的呢?其实,正因为数据仓库中存储的数据是来源于多个信息系统即数据源,所以我们需要用到ETL来对异种数据源的数据进行抽取、清洗、转换,最终整合加载到我们的数据仓库中。
什么叫相对稳定的呢?这个是指我们存储在数据仓库的的数据一般是不允许修改的,需要用到数据仓库中数据的用户只能通过分析工具进行查询和分析。
能够反映历史变化的,这一特点在我看来其实有两面:
其一,数据库在设计上是要避免冗余,而数据仓库则是能存多少就存多少,有意冗余,这样数据仓库能利用到的历史数据是比数据库要多的多的,这样才便于分析历史变化。
其二,数据仓库也是定期接收了最新数据的,能够反映最新的数据变化。所以数据仓库是新旧数据统筹兼顾,能够反映历史变化。
数据仓库的特点说完了,那现在主流的数据仓库又有那些呢?主流的是一款基于Hadoop的开源数据仓库工具,名叫Hive。Hive可以对存储在HDFS(Hadoop的分布式文件系统)上的文件数据集进行查询和分析处理。Hive对外提供了类似于SQL语言的查询语言 HiveSQL,在做查询时将HiveSQL语句转换成MapReduce(一种针对海量数据的并行计算模型)任务,在Hadoop层进行执行。
以上就是我们的数据仓库小课堂的所有内容啦,等笔者学了更多的大数据课程再来给大家开展新的小课堂。
Q
本文转载自 360质量效能