数据库与数据仓库的异同(以HIVE和MySQL为例)

原文:https://blog.csdn.net/qq_39521554/article/details/79883816

  • 数据库(database):传统的关系型数据库的主要应用(OLTP),主要是基本的、日常的事务处理,例如银行交易。
  • 数据仓库(data warehouse):数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

简单来说,数据仓库是一种结构体系,而数据库是一种具体技术。这就是最根本的区别。以MySQL这个数据库和Apache Hive这个数据仓库为例。这里Hive事实上就是一个很宏大的“体系结构”。它可以把元数据保存在MySQL、Oracle或者Derby这些具体的数据库“技术”里;它在进行查询时把SQL转化成MapReduce job,这里它又用到了MapReduce计算模型这种“技术”。再抽象一下,数据仓库和数据库的关系就像川菜和辣椒的关系一样。

二者异同

当我吃川菜的时候,刺激我的主要是川菜的辣。但是世界使用辣椒的门派也很多,韩国料理里也有辣椒,但是这和川菜就是不一样。川菜不仅仅使用了辣椒,还有其他烹饪技法使它具有鲜明特征。而单独使用MySQL虽然可以查一查简单东西,但是不能达到数据仓库“支持决策”这一高度。就像单独使用辣椒可以爽爽,但是没有办法搞出川菜这个能做招牌的地方菜系。从高处看这些概念会好一点:数据仓库是伴随着信息与决策支持系统的发展过程产生的,而数据库并不是。2.数据库/数据仓库的用户群体和工作场景不同数据库属于操作型系统,数据仓库属于分析性系统。操作性系统(数据库)的用户群体是大量客户,每次操作修改的数据量非常小,对时间敏感度非常高。

分析性系统(数据仓库)的用户是决策人员,他们不修改数据但是会分析大量数据,而且他们对得出结果的时间不敏感。比如说微博每天有上千万用户在发微博、修改个人资料,每个人都只修改属于自己的那几条数据,同时希望修改后立刻可以用。而为数不多的决策者希望通过微博进行挖掘,他们不可能修改用户数据,但是他们会访问大量数据。最后他们对时间不敏感,等到一个结果跑5分钟到1小时都可以的。你可以看出这两种需求根本上是不一样的。所以操作型处理及数据要和分析型处理及数据分开。

从不同层面来看

  • 逻辑层面/概念层面:数据库和数据仓库其实是一样的或者及其相似的,都是通过某个数据库软件,基于某种数据模型来组织、管理数据。但是,数据库通常更关注业务交易处理(OLTP),而数据仓库更关注数据分析层面(OLAP),由此产生的数据库模型上也会有很大的差异。数据库通常追求交易的速度,交易完整性,数据的一致性,等等,在数据库模型上主要遵从范式模型(1NF,2NF,3NF,等等),从而尽可能减少数据冗余,保证引用完整性;而数据仓库强调数据分析的效率,复杂查询的速度,数据之间的相关性分析,所以在数据库模型上,数据仓库喜欢使用多维模型,从而提高数据分析的效率。

  • 产品实现层面:数据库和数据仓库软件是有些不同的,数据库通常使用行式存储,如SAP ASE,Oracle, Microsoft SQL Server,而数据仓库倾向使用列式存储,如SAP IQ,SAP HANA

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值