数据仓库与数据库有何区别?

核心提示:说点大家都能懂的干货。请点赞收藏。先讲讲来龙去脉很久以前是没有数据仓库这个概念的,只有数据库,数据库就是很多数据表的集合,这样把存放不同

说点大家都能懂的干货。请点赞收藏。


先讲讲来龙去脉

很久以前是没有数据仓库这个概念的,只有数据库,数据库就是很多数据表的集合,这样把存放不同内容的表放在一起,就能满足一些基本的查询了。

比如提取2019年6月18日在淘宝购买Bose耳机的用户,只要几张表关联一下查询就出结果了。

后来在实际工作中人们发现当你在海量数据中做非常复杂的分析的时候,效率就很低了:比如找到2019年双11和2018年双11这两天,在淘宝下单超过500元且购买了Bose耳机的用户,这两拨用户在最近2两年的平均消费能力差异。要完成这个查询,首先要关联查询很多表,其次要查询2018和2019年两年的数据,最后你还要从海量的数据中找到符合要求的消费金额和消费者,这三点加起来就让数据提取变成了非常复杂的事儿,而且不一定能立刻查到,往往一个查询任务就要跑好几个小时。

所以随着数据体量增大,查询条件越来越复杂,大家一看不行啊,需要提高效率。所以数据仓库出现了。


数据仓库和数据库相比,有啥特点

1.数据仓库有主题性,有作业流的概念

上面的例子告诉我们,数据仓库是为了某一个/某一类特定的分析任务将数据重新聚合起来的,而数据库只是数据存储表的集合,所以数据仓库有主题性。同时也因为有主题的概念,数据仓库会根据你预设的逻辑,自动化的完成各个作业之间的调度,最终自动化的把结果输出给你。所以数据仓库也会有数据流和作业流的概念。

2.数据仓库让「查询」效率最大化

数据库本质就是很多数据表,所以数据表嘛,就要兼顾增删改查这些操作,但是数据仓库将数据重新组合,是为了让你更高效的查询并且支持你的分析工作的,所以数据库一般只让「查询」的效率最大化,「增删改」的效率不做主要考虑。

3.数据仓库有历史数据,而数据库一般只有近期数据

上面举的例子中,要查询淘宝2018年和2019年两年的双11数据,所以跨度很大。一般数据库只能存近期的数据,太久远的数据放不下,效率也低。但是数据仓库可以将某些维度的历史信息统一抽取出来以更合理的存储结构放到数据仓库中,这样查询跨年的数据时直接查询就行了,效率极大的提升。

4.数据仓库是基于数据库层面的升级

一家公司,一般是现有几张数据表,后来数据表集合成了数据库,再后来数据库不满足需求了,才有了数据仓库。所以数据表,数据库,数据仓库之间是有依赖关系的,不是割裂的。


怎么建立数据仓库

1.需求分析

分析你为了哪个目的建立数据仓库,数据仓库需要哪些维度的数据,这些数据表都在哪里是否能访问。

2.ETL

将你所有需要的数据表都找到,然后根据你的需求将需要的字段都提取出来并对数据格式进行清洗加工转换。保证数据原料是合格可用的

3.数据结构设计

包括维度表,事实表的设计,是否要用列式存储代替行式存储,是否需要将数据分层(详细可查询OLAP方面的数据模型),总之就是要保证数据查询的效率

4.作业调度

每一个你看到的数据背后,都是多个数据表被一系列脚本调用最终计算而成,所以多个作业之间肯定涉及调度关系,过程监控,结果监控等。所以要保证逻辑正确和执行正确。


以上4步完成后,一个数据仓库的雏形就有了,剩下的数据管理,计算管理,元数据等如果有需要可以在此基础上不断添加完善。

个人理解,数据仓库其实也是数据库的一种应用类型,主要与在线事务处理的数据库进行区别,数据仓库中的数据一般都是从生产系统中通过抽取,清洗,然后分类存储形成不同的主题仓库,最终服务于数据分析(比如BI)等用途

上一篇: 女销售原来靠这样卖房(楼盘置业顾问提成大概多少)
下一篇: 彩票中奖的新闻是真的还是假的