数据仓库配置单元

一个公司不同的项目可能使用不同的数据源,有的在MySQL,有的在MongoDB,有的甚至需要做第三方数据。

但现在我想整合数据并进行分析。这时,数据仓库(DW)就派上了用场。它可以过滤和整合各种业务数据,可用于数据分析、数据挖掘和数据报告。

一般来说,数据仓库按照一定的主题集成来自多个数据源的数据。因为之前的数据不一样,需要提取,清洗,转换。

整合的数据不能随便修改,只能分析,需要定期更新。

正如我们上面所说,数据仓库接收的数据源是不同的。如果要集成,需要三个步骤:提取、清洗、转换,也就是ETL(提取-转换-加载)。

国内最常用的数据仓库是基于Hadoop的开源数据仓库,名为Hive,可以查询分析HDFS存储的文件数据。

Hive可以对外提供HiveQL,这是一种类似于SQL语言的查询语言。HiveQL语句在查询时可以转换成MapReduce任务,可以在Hadoop层执行。

Hive最大的优势就是免费。其他知名的商业数据仓库呢?比如Oracle和DB2,其中Teradata是行业老大。

Teradata数据仓库支持大规模并行处理平台(MPP),可以高速处理海量数据。其实它的性能远高于Hive。对于企业来说,只需要专注于业务,在管理技术上节能,实现ROI最大化。

如上所述,Hive是最著名的开源数据仓库,它是Hadoop生态系统中的重要组成部分。

在Hadoop生态中,HDFS解决了分布式存储的问题,MapReduce解决了分布式计算的问题,HBASE提供了一种NoSQL的存储方式。

但是,如果您需要查询HDFS的文件或HBASE的表,您需要自定义MapReduce方法。那么Hive实际上是HDFS之上的一个中间层,允许业务人员直接用SQL查询。

所以Hive是通过数据抽取转换加载的,它可以把SQL转换成MapReduce任务,Hive表是HDFS的目录或文件。

上图是Hive的架构。

Hive主要包括以下数据模型:

为什么这篇文章是数据仓库?注释