数据库与数据仓库的区别(二)

数据库是操做型数据库,数据仓库是分析型数据库:数据库

 1. 操做型数据库
主要用于业务支撑。一个公司每每会使用并维护若干个数据库,这些数据库保存着公司的平常操做数据,好比商品购买、酒店预订、学生成绩录入等;
2. 分析型数据库
主要用于历史数据分析。这类数据库做为公司的单独数据存储,负责利用历史数据对公司各主题域进行统计分析;oop

 1. 数据组成差异 - 数据时间范围差异
通常来说,操做型数据库只会存放90天之内的数据,而分析型数据库存放的则是数年内的数据。这点也是将操做型数据和分析型数据进行物理分离的主要缘由。
 2. 数据组成差异 - 数据细节层次差异
操做型数据库存放的主要是细节数据,而分析型数据库中虽然既有细节数据,又有汇总数据,但对于用户来讲,重点关注的是汇总数据部分。
操做型数据库中天然也有汇总需求,但汇总数据自己不存储而只存储其生成公式。这是由于操做型数据是动态变化的,所以汇总数据会在每次查询时动态生成。
而对于分析型数据库来讲,由于汇总数据比较稳定不会发生改变,并且其计算量也比较大(由于时间跨度大),所以它的汇总数据可考虑事先计算好,以免重复计算。
3. 数据组成差异 - 数据时间表示差异
操做型数据一般反映的是现实世界的当前状态;而分析型数据库既有当前状态,还有过去各时刻的快照,分析型数据库的使用者能够综合全部快照对各个历史阶段进行统计分析。
4. 技术差异 - 查询数据总量和查询频度差异
操做型查询的数据量少而频率多,分析型查询则反过来,数据量大而频率少。要想同时实现这两种状况的配置优化是不可能的,这也是将两类数据库物理分隔的缘由之一。
5. 技术差异 - 数据更新差异
操做型数据库容许用户进行增,删,改,查;分析型数据库用户则只能进行查询。
6. 技术差异 - 数据冗余差异
数据的意义是什么?就是减小数据冗余,避免更新异常。而如5所述,分析型数据库中没有更新操做。所以,减小数据冗余也就没那么重要了。
如今回到开篇是提到的第二个问题"某大公司Hadoop Hive里的关系表不彻底知足完整/参照性约束,也不彻底知足范式要求,甚至第一范式都不知足。这种状况正常吗?",答曰是正常的。由于Hive是一种数据仓库,而数据仓库和分析型数据库的关系很是紧密(后文会讲到)。它只提供查询接口,不提供更新接口,这就使得消除冗余的诸多措施不须要被特别严格地执行了。
7. 功能差异 - 数据读者差异
操做型数据库的使用者是业务环境内的各个角色,如用户,商家,进货商等;分析型数据库则只被少许用户用来作综合性决策。
8. 功能差异 - 数据定位差异
这里说的定位,主要是指以何种目的组织起来。操做型数据库是为了支撑具体业务的,所以也被称为"面向应用型数据库";分析型数据库则是针对各特定业务主题域的分析任务建立的,所以也被称为"面向主题型数据库"。优化

相关文章
相关标签/搜索