个人理解,数据仓库其实也是数据库的一种应用类型,主要与在线事务处理的数据库进行区别,数据仓库中的数据一般都是从生产系统中通过抽取,清洗,然后分类存储形成不同的主题仓库,最终服务于数据分析(比如BI)等用途
通常情况下基于业务数据库数据分析人员也能完成数据分析需求,但是为什么要建数据仓库?
没有数据仓库时,我们需要直接从业务数据库中取数据来做分析。
业务数据库主要是为业务操作服务的,虽然可以用于分析,但需要很多额度的调整。
一,业务数据库中存在的问题
基于业务数据库来做分析,主要有以下几个问题:结构复杂,数据脏乱,难以理解,历史缺失,数据量大时查询缓慢。
说点大家都能懂的干货。请点赞收藏。
先讲讲来龙去脉
很久以前是没有数据仓库这个概念的,只有数据库,数据库就是很多数据表的集合,这样把存放不同内容的表放在一起,就能满足一些基本的查询了。
比如提取2019年6月18日在淘宝购买Bose耳机的用户,只要几张表关联一下查询就出结果了。
后来在实际工作中人们发现当你在海量数据中做非常复杂的分析的时候,效率就很低了:比如找到2019年双11和2018年双11这两天,在淘宝下单超过500元且购买了Bose耳机的用户,这两拨用户在最近2两年的平均消费能力差异。要完成这个查询,首先要关联查询很多表,其次要查询2018和2019年两年的数据,最后你还要从海量的数据中找到符合要求的消费金额和消费者,这三点加起来就让数据提取变成了非常复杂的事儿,而且不一定能立刻查到,往往一个查询任务就要跑好几个小时。
7月5日,Kyligence融资暨新产品发布会在上海举行。Kyligence 团队宣布正式发布下一代企业级数据仓库产品与解决方案Kyligence Enterprise v3.0,及云端一站式大数据分析解决方案KyligenceCloud v2.0。新版解决方案革命性地实现了自动建模功能,并将在查询提速15倍的同时节省50%存储空间。
“借助Kyligence Enterprise v3.0,此前客户需要花费半年、一年的数据分析周期可以缩减至一两个月甚至更短的时间,使用传统国外数据仓库需要每年投入上亿,使用Kyligence产品后,投入缩减至几百万。在人力上,从40多人缩减至6个人左右。”Kyligence联合创始人兼CEO韩卿在接受投资界(ID:pedaily)采访时介绍道。
Kyligence 联合创始人兼CEO韩卿
Kyligence Enterprise v3.0发布,打造融合、智能数据仓库
我看了下下面已经有的答案,大家从理论层面把数据库和数据仓库的本质区别解释的很全面了,我就给大家举个实际例子吧,方便大家看懂。
数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
我尝试着再补充些具体的事例来说明,这样更可以帮助大家更好理解一些。
举个最常见的例子,拿电商行业来说好了。
- 数据仓库是一种结构体系,而数据库是一种具体技术。这就是最根本的区别(也是数据仓库这个东西提出初期被人疯狂嘲讽的原因)。
拿MySQL这个数据库和Apache Hive这个数据仓库为例。这里Hive事实上就是一个很宏大的“体系结构”。它可以把元数据保存在MySQL、Oracle或者Derby这些具体的数据库“技术”里;它在进行查询时把SQL转化成MapReduce job,这里它又用到了MapReduce计算模型这种“技术”。
再抽象一下,数据仓库和数据库的关系就像川菜和辣椒的关系一样。当我吃川菜的时候,刺激我的主要是川菜的辣。但是世界使用辣椒的门派也很多,韩国料理里也有辣椒,但是这和川菜就是不一样。川菜不仅仅使用了辣椒,还有其他烹饪技法使它具有鲜明特征。
而单独使用MySQL虽然可以查一查简单东西,但是不能达到数据仓库“支持决策”这一高度。就像单独使用辣椒可以爽爽,但是没有办法搞出川菜这个能做招牌的地方菜系。从高处看这些概念会好一点:数据仓库是伴随着信息与决策支持系统的发展过程产生的,而数据库并不是。
2.数据库/数据仓库的用户群体和工作场景不同
1、数据库:是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现。数据库由很多表组成,表是二维的,一张表里面有很多字段。字段一字排开,对数据就一行一行的写入表中。数据库的表,在于能够用二维表现多维的关系。如:oracle、DB2、MySQL、Sybase、MSSQL Server等。
2、数据仓库:是数据库概念的升级。从逻辑上理解,数据库和数据仓库没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大德多。数据仓库主要用于数据挖掘和数据分析,辅助领导做决策;
区别主要总结为以下几点:1.数据库只存放在当前值,数据仓库存放历史值;2.数据库内数据是动态变化的,只要有业务发生,数据就会被更新,而数据仓库则是静态的历史数据,只能定期添加、刷新;3.数据库中的数据结构比较复杂,有各种结构以适合业务处理系统的需要,而数据仓库中的数据结构则相对简单;4.数据库中数据访问频率较高,但访问量较少,而数据仓库的访问频率低但访问量却很高;5.数据库中数据的目标是面向业务处理人员的,为业务处理人员提供信息处理的支持,而数据仓库则是面向高层管理人员的,为其提供决策支持;6.数据库在访问数据时要求响应速度快,其响应时间一般在几秒内,而数据仓库的响应时间则可长达数几小时
瞎炒概念!
数据库本义就是因为数据量大,把存储空间比喻成仓库。如何命名呢?数据仓库拗口,而且笨拙不符合IT领域属性。所以才叫“数据库”。
现在把数据仓库拿出来说是,无聊至极!!!
相对于文件系统而言,数据库是易于查询和修改的格式化数据存储形式。各家软件公司又围绕它制作了管理系统和各种工具。
文件系统很好理解,打开电脑,那些文件夹啊,文件啊就是了。但文件系统不易于做复杂的分析和修改。为了满足这个需求,数据库就出现了。
本质上数据仓库也是数据库,为一种特定需求服务的数据库。服务于数据量大,需要进行复杂分析的场景。数据库还能应用于其他场景。比如事务性场景,如商业交易,买卖的记录和客户资料的存储更新。
希望对你有帮助
简言之,数据库主要面向业务中“交互”场景(如创建一个订单、收藏一件商品、删除一条评价等),提供对业务数据的读写操作功能。
数据库按照操作的数据模型划分,可以分为关系型数据库、键-值数据库、文档数据库、图数据库、等等。
数据仓库,则汇总了各个数据源的有价值数据。这些数据源可能包括公司内部系统的数据库、电子表格等,也可能是来自外部机构如社交网站、银行等。
通过对数据仓库中的信息进行分析和挖掘,可以从各个时间、区域、等维度对业务情况进行汇总分析,如:“双十一活动”的各种数据报告,哪个省份的人最爱买什么,等等。
当然,数据库和数据仓库的区别,从不同角度看会有不同的答案。我仅从我的角度给大家提供一点解读,希望对大家有用,谢谢。