设计数据仓库是一件比较困难以及长期的事情,所以我们一开始应该清楚得定义它的实现范围,也就是要明确实现目的,而且需求应该是详细,业务是可实现的,可量化的。
五、数据仓库 vs 数据库通过上面我们了解了数据仓库,那么现在可以来回答文中一开始的问题。
传统数据库是为存储而生,而数据仓库很明显,是为分析而生。实现目的的不同一开始就注定它们的差异。传统数据库包括增删改查,但数据仓库注重查询。 传统数据库的主要任务是执行联机事务处理,简称 OLTP ( Online Transaction Processing)。主要负责日常操作,如购物,制造。
数据仓库系统在数据分析和决策方面为用户或“知识工人”提供服务,可以以不同的格式组织和提供数据,以便应付不同的需求,这种系统称作联机分析处理,简称 OLAP ( Online Analytical Processing )。
下面我们通过对比 OLAP 和 OLTP 的区别,就能详细知道数据仓库和数据库的区别。 首先考虑用户和系统的面向对象,OLTP 是面向顾客的,用户操作员,客户和信息技术人员的事务和查询处理。OLAP 是面向市场的,用于知识工人的数据分析。
数据内容:OLTP 管理当前数据。但是一般这种数据比较琐碎,很难用于决策。OLAP系统管理大量历史数据,提供汇总和聚集机制,而且在不同的粒度层上存储和管理信息。
数据库设计:OLTP 系统采用实体-联系(ER)数据模型和面向应用的数据库设计。而 OLAP 系统采用星形或雪花模型和面向主题的数据库设计。
视图:OLTP 关注一个企业或部门内部的当前数据,不涉及历史数据或不同单位的数据。OLAP 经常需要跨域数据库模式的不同版本。
访问模式: OLTP 系统主要由短的原子事务组成,一般需要并发控制和恢复机制。而 OLAP 系统的访问大部分是只读操作。
下面用个表格总结看起来比较明朗
特征
OLTP
OLAP
特性
操作处理
信息处理
面向
事务
分析
用户
办事员、DBA、数据库专业人员
知识工人(如经理,主管,分析人员)
功能
日常操作
长期信息需求,决策支持
DB设计
基于E-R,面向应用
星形/雪花、面向主题
数据
当前的,确保最新的
历史的,跨时间维护
汇总
原始的、高度详细
汇总的、统一的
视图
详细、一般关系
汇总的、多维的
工作单元
短的,简单事务
复杂查询
访问
读/写
大多为读
关注
数据进入
信息输出
操作
主码上索引/散列
大量扫描
访问记录数量
数十
数百万
用户数
数千
数百
DB规模
GB到高达GB
≥TB
优先
高性能、高可用性
高灵活性、终端用户自治
度量
事务吞吐量
查询吞吐量、响应时间
六、数据仓库有什么用