数据库(DB)和数据仓库(DW)的区别与联系
数据库与数据仓库基础概念:
数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLTP和OLAP概念补充:
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。
-
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
-
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
-
OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
-
OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SC56vkjy-1646220369197)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/03a63f5c8f6e43fda8366c95fb01396d~tplv-k3u1fbpfcp-zoom-1.image “image.png”)]
如果以上补充内容不是很熟悉的话,可以参考我之前一篇博客,点击这里
举一个具体的例子:(转自知乎作者:陈诚),个人觉得例子描述的很清晰
举个最常见的例子,拿电商行业来说好了。
这类非常具体,且能够对公司决策起到关键性作用的问题,基本很难从业务数据库从调取出来。原因在于:
-
业务数据库中的数据结构是为了完成交易而设计的,不是为了而查询和分析的便利设计的。
-
业务数据库大多是读写优化的,即又要读(查看商品信息),也要写(产生订单,完成支付)。因此对于大量数据的读(查询指标,一般是复杂的只读类型查询)是支持不足的。
而怎么解决这个问题,此时我们就需要建立一个数据仓库了,公司也算开始进入信息化阶段了
数据仓库的作用:
那么在这里前一种业务数据库(读写都优化)的是业务性数据库,后一种是分析性数据库,即数据仓库。
常见产品
数据库 | 数据仓库 |
---|---|
MySQL,Oracle,SqlServer,DB2 | AWS Redshift,Greenplum,Hive等 |