数据仓库的四个特点
数据仓库具有以下的几个特点
- 面向主题
与业务相关的类别,也就是说针对什么业务进行分析就划分成什么样的数据主题。eg:一个公司要分析销售数据,就可以建立一个专注于销售的数据仓库,使用这个数据仓库,就可以回答类似于“去年谁是我们这款产品的最佳用户”这样的一个问题。 - 集成
将数据进行整合,加工成一致,统一计量单位,无歧义的数据,命名无冲突等。eg:多个产品的,有很多独立的销售数据库。集成就是将这些数据库里的数据统一起来,组成一个数据仓库,进行整体的分析。 - 随时间变化
不同于联机事务处理(OLTP)联机事务处理反应的是当前时间点的数据情况,要求高性能、高并发和极短的响应时间。 数据仓库关注的是数据随时间变化,并且能够反映过去的某个节点的数据是怎么样的,换句话说,数据仓库中的数据是反映了某一历史事件点的数据快照。数据不可能只如不出地驻留在数据仓库中,它在数据仓库中也有自己的生命周期。到了一定的时候数据就会从数据仓库中移除。移除的方式可能是将细节数据汇总后删除,将老的数据转储到大容量介质后删除和直接武力删除等 - 非易失
非易失指的是,一旦进入到数据仓库中,数据就不应该再有改变。操作型环境中的数据一般都会频繁更新,而在数据仓库环境中一般并不进行数据更新。当改变的操 作型数据进入数据仓库时会产生新的记录,这样就保留了数据变化的历史轨迹。也就是说,数据仓库中的数据基本是静态的。这是一个不难理解的逻辑概念。数据仓库的 目的就是要根据曾经发生的事件进行分析,如果数据是可修改的,将使历史分析变得没有意义。
数据仓库的粒度概念
粒度指的是数据的细节或汇总程度,细节程度越高,粒度级别越低。eg:单个事务是低粒度级别,全部一个月的事务汇总就是高粒度级别(自己的理解:就是对数据的数量划分,划分得越细,粒度级别就越低)
数据粒度是数据仓库设计需要思考的重点问题,在早期的操作型系统中,当细节数据被更新时,几乎总是将其存放在最低粒度级别上;而在数据仓库环境中,通 常都不这样做。例如,如果数据被装载进数据仓库的频率是每天一次,那么一天之内的数据更新将被忽略。
粒度级别越低,数据量越大,查询的细节程度越高,查 询范围越广泛,反之亦然
数据仓库存在的原因
数据仓库的数据都是来自于已有的业务系统中,但是早期的数据分析的先驱者发现,简单的“直接访问”很难良好的工作,有如下几点的因素
- 某些业务的数据由于安全或者其他的因素不能够直接被访问
- 业务系统版本变更很频繁,每次变更都需要重写分析系统并且重新测试
- 很难建立和维护汇总数据来源于多个业务系统版本的报表
- 业务系统的列名通常是硬编码,有时仅仅是无意义的字符串,这让编写分析系统更加困难。
- 业务系统的数据格式,如日期,数字的格式化不统一。
- 业务系统的表结构为事务处理性能而优化,有时并不适合查询分析
- 有误用业务数据的风险
- 极有可能影响业务系统的性能
(就是说有以上诸多原因的限制下,虽然说那些数据存在已有的业务系统上,但是如果直接操作的话不好操作,数据玩丢了,业务系统玩崩了那就完犊子了。所以把这些数据另外保存一份到数据仓库里面进行分析,这样就算玩脱了也不影响原有的业务正常的进行)
数据仓库的好处
- 将多个数据源集成到单一数据存储,因此可以使用单一数据查询引擎展示数据
- 缓解在事务处理数据库上因执行大查询而产生的资源竞争问题
- 维护历史数据
- 通过对多个源系统的数据整合,使得在整个企业的角度存在统一的中心视图。
- 通过提供一致的编码和描述,减少或修正坏数据问题,提高数据的质量
- 一致性地表示组织信息
- 提供所有数据的单一通用数据模型,而不用关心数据源
- 重构数据,使数据对业务用户更有意义。
- 向复杂分析查询交付优秀的查询性能,同时不影响操作系统
- 开发决策型查询更简单