博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库与数据仓库的区别(转载)
阅读量:6868 次
发布时间:2019-06-26

本文共 1316 字,大约阅读时间需要 4 分钟。

数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

我尝试着再补充些具体的事例来说明,这样更可以帮助大家更好理解一些。举个最常见的例子,拿电商行业来说好了。基本每家电商公司都会经历,从只需要业务数据库到要数据仓库的阶段。

电商早期启动非常容易,入行门槛低。找个外包团队,做了一个可以下单的网页前端 + 几台服务器 + 一个MySQL,就能开门迎客了。这好比手工作坊时期。

第二阶段,流量来了,客户和订单都多起来了,普通查询已经有压力了,这个时候就需要升级架构变成多台服务器和多个业务数据库(量大+分库分表),这个阶段的业务数字和指标还可以勉强从业务数据库里查询。初步进入工业化。

第三个阶段,一般需要 3-5 年左右的时间,随着业务指数级的增长,数据量的会陡增,公司角色也开始多了起来,开始有了 CEO、CMO、CIO,大家需要面临的问题越来越复杂,越来越深入。高管们关心的问题,从最初非常粗放的:“昨天的收入是多少”、“上个月的 PV、UV 是多少”,逐渐演化到非常精细化和具体的用户的集群分析,特定用户在某种使用场景中,例如“20~30岁女性用户在过去五年的第一季度化妆品类商品的购买行为与公司进行的促销活动方案之间的关系”。这类非常具体,且能够对公司决策起到关键性作用的问题,基本很难从业务数据库从调取出来。原因在于:业务数据库中的数据结构是为了完成交易而设计的,不是为了而查询和分析的便利设计的。业务数据库大多是读写优化的,即又要读(查看商品信息),也要写(产生订单,完成支付)。因此对于大量数据的读(查询指标,一般是复杂的只读类型查询)是支持不足的。

然而怎么解决这个问题,此时我们就需要建立一个数据仓库了,公司也算开始进入信息化阶段了。数据仓库的作用在于:数据结构为了分析和查询的便利;只读优化的数据库,即不需要它写入速度多么快,只要做大量数据的复杂查询的速度足够快就行了。那么在这里前一种业务数据库(读写都优化)的是业务性数据库,后一种是分析性数据库,即数据仓库。

最后总结一下:数据库 比较流行的有:MySQL, Oracle, SqlServer等数据仓库 比较流行的有:AWS Redshift, Greenplum, Hive等这样把数据从业务性的数据库中提取、加工、导入分析性的数据库就是传统的 ETL 工作。现在也有一些新的方法,这展开说又是另一件事情了,有机会再详细说说。

作者:陈诚

链接:
来源:知乎

最后补充一下ETL:ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

转载地址:http://mpcfl.baihongyu.com/

你可能感兴趣的文章
初学HTC
查看>>
win7 VMware Workstation Centos6.5虚机桥接上网设置 详解(靠谱)
查看>>
消息队列
查看>>
p2114 起床困难综合症
查看>>
11.2、正则表达式Perl风格函数的应用
查看>>
《深入理解mybatis原理3》 Mybatis数据源与连接池
查看>>
C#返回两个日期之间的时间间隔
查看>>
BZOJ-4034: [HAOI2015]树上操作 (线段树+DFS序)
查看>>
maven下载jar包源码配置
查看>>
关于MYSQL通过子查询删除重复数据的for update报错问题解决
查看>>
进程与fork()、wait()、exec函数组
查看>>
ASP.NET入门(1) - 建立和开发ASP.NET 5 项目
查看>>
织梦内页读取栏目banner图
查看>>
技术入股
查看>>
multi-voltage design apr
查看>>
快速生成R语言报告(markdown+Rstudio)
查看>>
WindowsServer2003中IIS支持php的配置
查看>>
原型链、prototype、_proto_那些事
查看>>
Centos 6.4使用本地yum源
查看>>
RedHat 7 静默安装Oracle 12c
查看>>