数据仓库是什么
数据库是最常听到的名词之一了,但是当提到数据仓库的时候,就会疑问,数据仓库是数据库吗? 如果不是,数据仓库是什么,用来干什么的呢? 平时遇到这个问题一般还真是不好简单明了的回答,因为也的确不是一两句话说的清的。那么数据仓库到底是什么呢,跟数据库有什么区别呢?
数据仓库是什么呢?
数据仓库是面向主题的 集成的 相对稳定的 反映历史变化的数据集合,目的在于支持决策
-
面向主题
-
面向主题跟面向应用相对应。面向应用是指实现某种功能,数据集合也是其单一功能的数据集。而面向主题是指为了实现某个主题而产生的一个或多个的面向应用的数据集合的整合。
-
举个例子,支付是一个面向应用的主体,而交易是一个面向主题的主体。因为交易是从下单,到支付等的一系列的过程的串联,支付只是其中的一环。
-
- 集成
- 数据仓库的一个重要的功能是把不同的数据源的数据汇总到一起。
- 集成是指把不同类型的数据源的数据进行整合,按照统一的形式进行集成。比如性别在一个数据源用男/女 另一个用1/2,那么在数据仓库中我们需要对其进行统一。
- 相对稳定
- 数据一般有一定的生命周期,历史的数据一般不会再改变,我们可以采用增量的策略进行数据的传输和计算。比如看订单的支付成功的相关信息,那么一旦订单支付成功之后,这个订单的支付成功相关的信息就不会在变更,所以此类的数据可以按天增量计算。
- 反映历史变化
- 由于在数据仓库中可以存储历史的信息,那么就可以根据这些历史信息进行数据的分析来反映历史的变化。而操作型数据库一般只会某些时间段的数据。
数据仓库跟数据库有什么区别呢?
从数据仓库的概念中也可以看出来数据仓库做的事情确实跟数据库不一样。归纳起来如下
- 数据粒度不同。数据库存储的是操作型数据,是细节性的数据,事当前的数据,反应的是最后修改的结果。数据仓库是分析型的集成或者汇总的数据,面向主题,并且保存数据的所有历史状态。
- 数据生命周期不同。数据库存的数据的生命周期比较短,不会保存很久的数据。数据仓库则需要历史数据来反映趋势的变化和数据分析。
- 建模方法不同。数据库采用范式建模,不能有冗余。数据仓库的建模方法有DW范式建模(跟数据库的范式建模也不同)和DM维度建模等,可以存在冗余。
- 时间敏感度不同。数据库的数据要求及时性非常高。数据仓库可以容忍数据的一定的延迟。
- 目标不同。数据库主要面向业务处理的,而数据仓库则面向分析用户。
网上引用比较多的对比表格