数据仓库系列(一)
一、 什么是数据仓库?
1. 应用:数据分析
(1)当公司业务累积到一定程度,会产生大量的业务数据,为了更好的发展就需要对现有的数据进行分析,以对未来规划有指导性作用;
(2)数据分析,一般都是面向整个公司的,数据源是来自不同的业务系统不同形式的数据,如mysql(关系型数据库)、MongoDB(非关系型数据库)、APP埋点、爬虫(第三方数据)
(3)将不同数据源的数据整合到一起,进行数据分析,实属不易
2. 数据仓库
数据仓库(Data Warehouse,简写为DW),是一个面向分析的存储系统,是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。
数据仓库的提出,就是为了解决多种不同数据源不易整合并分析的问题,数据仓库的输入可以是不同的数据源,最终输出将用于数据挖掘、数据分析、数据报表。
二、数据仓库的特点
1. 主题性
面向主题性是数据仓库和操作型数据库的根本区别。根据使用者实际需求,将不同数据源的数据在一个较高的抽象层次上做整合,所有数据都围绕某一主题来组织。比如:对于滴滴出行,“司机行为分析”;对于链家,“成交分析”。
2. 集成性
经过抽取、清洗、转换的过程,将多个数据源的数据整合到一起。
3. 企业范围
数仓内的数据是面向公司全局的
4. 历史性
数仓时间跨度从几个月到几十年间
5. 时变性
数仓包含来自其时间范围不同时间段的数据快照。
三、数据仓库组件
数据仓库的核心组件:各源数据库、ETL、数据仓库、前端应用
1. 业务系统
业务系统包含各种源数据库
2. ETL(Extract-Transform-Load)
Extract:数据抽取,即把数据从数据源读出来
Transform:数据转换,即把数据转换为特定的格式
Load:数据加载,即把处理后的数据加载进数据仓库
3. 前端应用
数据仓库通常提供具有直接访问数据仓库功能的前端应用(BI,商务智能应用)。
四、主流的数据仓库
在国内,最常用的数据仓库是一款基于Hadoop的开源数据仓库【Hive】
1. Hive介绍
Hive是基于Hadoop的数据仓库工具,可以对存储在HDFS上的文件数据集进行查询和分析处理;Hive对外提供了类似于SQL语言的HiveSQL,在做查询时,将HiveSQL语句转换成MapReduce任务,在Hadoop层进行执行。
(1)HDFS
Hadoop的分布式文件系统,作为数据仓库的存储层。
(2)MapReduce
一种针对海量数据的并行计算模型,即对多个数据分片的数据转换和合并。
2. Hive的优势
(1)免费
3. 知名的商业数据仓库
Oracle、Db2等。业界龙头【Teradata】
(1)Teradata优点
Teradata数据仓库配备性能最高、最可靠的大规模并行处理(MPP)平台,能够高速处理海量数据,性能远远高于Hive
(2)Teradata缺点
Teradata价格不便宜,不适用于中小型公司。
五、数据集市(data mart)
数据集市,一种“小型数据仓库”,只包含单个主题,且关注范围也非全局。数据仓库分为两类:
1. 独立数据集市(independent data mart)
有自己的源数据库和ETL架构
2. 非独立数据集市(dependent data mart)
没有自己的源系统,数据来自数据仓库。
当用户或者应用程序不需要/不必要/不允许用到整个数据仓库的数据时,非独立数据集市就可以简单为用户提供一个数据仓库的“子集”。