卫明真

2020-08-21   阅读量: 811

数据库与数据仓库的区别

扫码加入数据分析学习群

数据仓库(Data Warehouse)

是一个面向主题的(Subject Oriented)、集成的(Integrate)、稳定 的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策。

面向主题:数据仓库侧重于数据分析工作,所以数据仓库中的数据是按照一定的主题进行组织和存 储。

集成:对原有分散的数据库数据经过系统加工、整理,消除源数据中的不一致性。

稳定:数据进入数据仓库以后只需要定期的加载、刷新,不需要频繁修改。

反映历史变化:出于决策的需要,数据仓库中的数据都要标明时间属性。通过这些数据信息,对企 业的发展历程和未来趋势做出定量分析预测。

数据库与数据仓库的区别

数据库和数据仓库其实很相似,都是通过数据库管理系统,来组织、存储和管理数据。

它们的不同之处在于: 数据库是存放原始数据的集合,主要存储业务流程中的事务性数据,如银行交易、订单记录等。 数据仓库是数据库概念的升级,是存放加工处理后的数据集合,主要存储从数据库中整合、汇总后的数 据,用于针对某些主题的历史数据进行分析,侧重决策支持。 单从概念上讲有些晦涩,任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例, 数据库是银行事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来。数据仓库 是分析系统的数据平台,它从事务数据库获取数据,并做汇总、加工,为决策者提供决策的依据。比 如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多, 那么该地区就有必要加设ATM了。 显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是要求时效性的,客户存取一 笔钱等待几十秒是无法忍受的,这就要求数据库实时响应。而分析系统是事后的,它要提供关注时间段 内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析结 果就达到目的了。

数据库与数据仓库的区别,实际上就是OLTP与OLAP的区别。

操作型处理,叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向交易的 处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较 为关心操作的响应时间、数据的安全性、完整性和并发的支持用户数等问题。传统的数据库作为数 据管理的主要手段,主要用于操作型处理。

分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing),支持复杂的分析操作, 侧重决策支持,并且提供直观易懂的查询结果。的需要,数据仓库中的数据都要标明时间属性。通过这些数据信息,对企 业的发展历程和未来趋势做出定量分析预测。

基本每个企业都会经历从数据库到数据仓库的阶段,以电商行业为例:

第一阶段、电商行业早期入行门槛低,找个外包团队,做一个网页前端 + 几台服务器 + 一个MySQL,就能开门迎客了。

第二阶段,流量来了,客户和订单都多起来了,这个时候就需要升级架构变成多台服务器和多个业 务数据库(分布式存储),这个阶段的业务数据和指标还可以勉强从业务数据库里查询。

第三个阶段,随着业务的发展数据量呈指数级增长,面临的业务问题越来越复杂。领导者关心的问 题,从最初非常粗放的:“昨天的收入是多少”、“上个月的 PV、UV 是多少”,逐渐演化到非常精细 化和具体的用户消费行为分析,如“20~30岁女性用户在过去五年的第一季度化妆品类商品的购买 行为在促销活动方案中的表现”。 这类非常具体且能够对公司决策起到关键性作用的数据,很难从业务数据库从调取出来。原因在 于: 1、业务数据库中的数据结构是为了完成交易而设计的,不是为了查询和分析的便利设计的。 2、业务数据库大多是读写优化的,即又要读(查看相关的商品信息),也要写(产生订单,完成 支付)。因此对于大批量的数据读取(复杂的查询指标)是支持不足的。 为了解决此类问题就需要建立数据仓库,它的作用在于: 1、数据结构为了分析和查询的便利而设计。 2、只读优化的数据库,即不需要它写入速度多么快,只要做大量数据的复杂查询的速度足够快就 行了。

41.3298 5 0 关注作者 收藏

评论(0)


暂无数据

推荐课程