数据库到数据仓库

简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。数据库通常追求交易的速度,交易完整性,数据的一致性等,在数据库模型上主要遵从范式模型(3NF),从而尽可能减少数据冗余,保证引用完整性;数据仓库强调数据分析的效率,复杂查询的速度,数据之间的相关性分析。

1、为什么数据仓库?

1)数据激增,可获取到的各类数据量迅猛增长
2)数据类型多样,不仅包括结构化数据,各类半结构化和非结构化数据逐渐成为主要的组成部分
3)需求逐步提升,从提升效率 -> 决策支持,并且要求响应时间足够短
仅仅依靠传统关系型数据库显然已经无法满足需求

2、面对困境如何处理?

对症下药,各个击破
1)对数据激增
分布式存储,分表、分区存储;或者使用bigtable,扩充单表存储量
2)数据多类型
NLP+ETL,将需要标准化的数据放存储区
3)分析方式的转化和响应时间的要求
基于特定分析主题,构建专门的维度分析模型,满足分析的需求
引入「数据生命周期」的概念,按照数据的访问频次区别处理,保证响应时间

3、数据库与数据惨仓库的区别

概念

数据库通常是指关系型数据库,是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

  • 面向主题:指数据仓库中的数据是按照一定的主题域进行组织。
  • 集成:指对原有分散的数据库数据经过系统加工, 整理得到的消除源数据中的不一致性。
  • 相对稳定:指一旦某个数据进入数据仓库以后只需要定期的加载、刷新。
  • 反映历史变化:指通过这些信息,对企业的发展历程和未来趋势做出定量分析预测。

区别

  1. 数据库是面向事务的设计(OLTP),数据仓库是面向主题设计的(OLAP);数据库是为捕获数据而设计,数据仓库是为分析数据而设计
  2. 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据,数据既包含整合的,也包含粒状的
  3. 数据库设计是尽量避免冗余,数据仓库在设计是有意引入冗余(维度建模)

数据仓库建设是一个过程。企业数据处理方式是以联机事务处理形式信息,并利用信息进行决策;在信息应用过程中管理信息。数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。

参考资料

1)如何靠建数据仓库发家 - 标题要引人入胜
2)数据库 与 数据仓库的本质区别是什么?
3)实战mysql分区(PARTITION)
4)MySQL的表分区详解

2016-12-21 23:18 14 数据仓库
Comments
Write a Comment