数据仓库与数据库的区别,实际上就是OLTP(联机事物处理过程),也称为面向交易的处理过程,和OLAP(联机分析处理)的区别。
在看具体的差异之前,需要特别提醒的是,
数据仓库的出现并不是要取代数据库,它们是各有各的用处的
。
-
先从面向来看,数据库面向的是事务,也就是OLTP(联机事务处理过程),而数据仓库呢面向的是分析,也就是OLAP(联机分析处理)。
-
再看一下用户,对于数据库来说,它的用户是DBA开发;对于数据仓库来说呢,它的用户就是经理、主管、分析人员,可以看出数据仓库是针对于分析的;
-
对于功能而言,数据库是针对于日常操作的,而数据仓库是对于长期信息需求,用来决策支持的。
-
再看一下数据,数据库当中存储的是当前的、最新的,而数据仓库呢存储的是历史的、跨时间维护的,所以数据库当中信息比较久远的数据可以入仓,也就是存储到数据仓库中来。
-
再看一下用户数,数据库是数百到数亿的,例如我们是一个电商数据库,那他的用户可能就达到了上亿,而对于数据仓库可能只达到了数百,因为是给企业内部人员来进行使用的。
-
再看一下设计规模,数据库呢是GB到TB的,那对于数据仓库来说呢,它存在是历史数据,所以肯定是大于TB的。
我们以银行业务为例来具体的说明一下。数据库是事务系统的数据平台,那客户在银行做的每一笔交易都写入数据库记录下来,这里可以简单的理解为用数据库来记账。而数据仓库是分析系统的数据平台,它从事务系统获取数据,也就是从数据库中获取数据,并做汇总、加工,为决策者提供决策的依据。比如某银行某分行一个月发生多少交易,该分行当前存款余额是多少,如果存款多、消费交易多,那么该地区就有必要设立ATM。银行的交易量是巨大的,通常以百万甚至千万来计算。税务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。
而分析系统是事后的
,它要提供关注时间段内所有的有效数据,这些数据就是海量的,汇总计算比较慢一些,但是只要能够提供有效的分析数据就达到了目的了。
因此数据仓库是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、决策需要而产生的,它绝不是所谓的大型数据库。
数据仓库是大数据时代的必然产物,而且它还具有
四个特征
:面向主题的、集成的、稳定的、时变的。那么我们用它来解决的问题就是存储大数据量、快速提取、还有跨部门应用。那针对于跨部门应用和快速提取,我们就要
设计好数据仓库的架构
。那数据仓库的架构主要从四个方面来考虑:一个是性能,比如提取速度快;一个是成本,也就是数据仓库到底有多少个集群等等;还有效率和还有质量,这四点之间取得最佳的平衡。
而主流的方法呢是分层架构。
-
第一层,ODS层,是数据准备区,数据来源是各个业务系统的数据,物理模型和业务系统模型是一致的。
-
第二层,DWD层,数据来至于ODS层,数学模型与ODS层一致,那其实也是与业务系统模型一致。
-
第三层,DW层,数据来自是第二层DWD层,是DW事实层,采用维度建模,星型架构。这一层可细分为dwb和dws。
-
第四层,DM层,数据来自于下一层的DW层,采用了维度建模,也是星型架构,和DW层是一样的。
-
第五层,ST层,数据来自于DW层,采用的也是维度建模和星型架构。
上述内容是从
数据来源及建模方式
来说的这样五层的作用。
接下来我们从
服务领域、数据ETL
来看一下这五层的作用。
数据仓库系统的数据来源于不同的数据源,例如MySQL、ORACLE和文档等等,而且还提供不同的数据应用。数据是自下层流入到数据仓库,然后向上层开放数据应用。
数据仓库只是中间的一个数据管理平台
,所以我们在架构数据仓库系统的时候都采用分层架构。
来看一下名企的数据仓库。
华为采用的是分层架构。
星环专有采用的也是分层架构。
从我们介绍元数据保存的信息,我们可以看出,元数据分为技术性的元数据,还有业务性的元数据。
技术元数据,它是被开发或者是管理数据仓库的这些IT人员使用的,它描述了与数据仓库的开发管理,以及维护相关的数据。例如包含数据源的信息都来自于哪一个部分的数据(比如MySQL,或者哪一个业务的)、数据转换的描述(也就是不同的数据源是如何入仓的)、数据仓库的模型、数据的清洗与更新的规则、数据映射和访问权限等等。
对于业务元数据呢,它是对管理层和分析人员来服务的,但是从业务角度来描述数据,包括一些商务数据、数据仓库中有什么数据、数据的具体位置在什么地方和数据可用性等等。
这就是我们元数据的作用,所以说元数据贯穿了数据仓库构建的整个过程,直接影响了数据仓库的构建(也就是IT人员使用的那部分元数据)、使用(也就是管理层和分析人员)和维护(也是IT人员)。
所以数据仓库的元数据管理记录很重要,保证数据仓库中的数据质量,可以对元数据进行管理。那还有一点呢,就是对数据进行治理。数据治理有广义上的,还有狭义上的。在这里我们只介绍狭义的,也就是从数据分析的角度来介绍一下数据治理如何影响数据质量、影响分析的。
数据仓库规模⼤、周期⻓,⼀些规模⽐较⼩的企业⽤户难以承担。因此,作为快速解决企业当前存在的实际问题的⼀种有效⽅法,独⽴型数据集市成为⼀种既成事实。
数据集市(Data Mart) ,也叫数据市场,数据集市就是满⾜特定的部⻔或者⽤户的需求,按照多维的⽅式进⾏存储,包括定义维度、需要计算的指标、维度的层次等,⽣成⾯向决策分析需求的数据⽴⽅体。
数据集市主要是针对⼀组特定的某个主题域、部⻔或者特殊⽤户需求的数据集合。这些数据需要针对⽤户的快速访问和报表展示进⾏优化,优化的⽅式包括对数据进⾏轻量级汇总,在数据结构的基础上创建索引。
数据集市的⽬标分析过程包括对数据集市的需求进⾏拆分,按照不同的业务规则进⾏组织,将与业务主题相关的实体组织成主题域,并且对各类指标进⾏维度分析,从⽽形成数据集市⽬标说明书。内容包括详细的业务主题、业务主题域和各项指标及其分析维度。
一直在学习路上!
推荐关注的专栏