什么时候需要用到数据仓库?
一个公司里面不同项目可能用到不同的数据源,有的存在MySQL里面,又的存在MongoDB里面,甚至还有些要做第三方数据。
但是现在又想把数据整合起来,进行数据分析。此时数据仓库(Data Warehouse,DW)就派上用场了。它可以对多种业务数据进行筛选和整合,可以用于数据分析、数据挖掘、数据报表。
数据仓库的特点
- 主题性:数据仓库是针对某个主题来进行组织,比如滴滴出行,司机行为分析就是一个主题,所以可以将多种不同的数据源进行整合。而传统的数据库主要针对某个项目而言,数据相对分散和孤立。
- 集成性:
数据仓库需要将多个数据源的数据存到一起,但是这些数据以前的存储方式不同,所以需要经过抽取、清洗、转换的过程 - 稳定性:保存的数据是一系列历史快照,不允许修改,只能分析。
- 时变性:会定期接收到新的数据,反应出最新的数据变化。
总的来说,数据仓库是将多个数据源的数据按照一定的主题集成起来,因为之前的数据各不相同,所以需要抽取、清洗、转换。
整合以后的数据不允许随便修改,只能分析,还需要定期更新。
ETL
上面我们说过,数据仓库接收的数据源是不同的,要做集成的话,需要抽取、清洗、转换三个步骤,这就是ETL
(Extract-Transform-Load)
- Extract:数据抽取,就是把数据从数据源读出来
- Transform:数据转换,就是把数据转换为特定的格式
- Load:数据加载,把处理后的数据加载到目标处。
主流的数据仓库
国内最常用的是一款基于Hadoop的开源数据仓库,名为Hive
,它可以对存储在HDFS的文件数据进行查询、分析。
Hive对外可以提供HiveQL,这是类似于SQL语言的一种查询语言。在查询时可以将HiveQL语句转换为MapReduce任务,在Hadoop层进行执行。
Hive的最大优势在于免费,那其他知名的商业数据仓库有那些呢?比如Oracle,DB2,其中业界老大是Teradata
Teradata数据仓库支持大规模并行处理平台(MPP),可以高速处理海量实际上,性能远远高于Hive。对企业来说,只需要专注于业务,节省管理技术方面的精力,实现ROI(投资回报率)最大化。
参考
本文为什么是数据仓库?的笔记