什么是数据仓库
数据仓库是一个面向主题的、集成的、随时间变化的,但信息本身相对稳定的数据集合,它用于支持企业或组织的决策分析处理,这里对数据仓库的定义,指出了数据仓库的四个特点:
数据仓库是面向主题的
操作型数据库的数据组织是面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织,这里说的“主题”是一个抽象的概念,它指的是用户使用数据仓库进行决策时关心的重点方面,一个主题通常与多个操作型信息系统相关。例如,商品的推荐系统就是基于数据仓库设计的,商品的信息就是数据仓库所面向的主题。
数据仓库是随时间变化的
数据仓库是不同时间的数据集合,它所拥有的信息并不只是反映企业当前的运营状态,而是记录了从过去某一时间点到当前各个阶段的信息。可以这么说,数据仓库中的数据保存时限要能满足进行决策分析的需要(例如:过去的5-10年),而且数据仓库中的数据都要标明该数据的历史时期。
数据仓库相对稳定
数据仓库是不可更新的。因为数据仓库主要目的是为决策分析提供数据,所涉及的操作主要是数据的查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,修改和删除操作很少,通常只需要定期的加载、刷新来更新数据。
多学一招:OLTP和OLAP
数据处理大致可以分为两类,分别是联机事务处理OLTP和联机分析处理OLAP,其中:
(1) OLTP是传统关系型数据库的主要应用,主要针对的是基本的日常事务处理,例如,银行转账。
(2) OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果,例如,商品的推荐系统。
接下来,通过一张表来比较OLTP和OLAP,具体如表1所示。
表1 OLTP和OLAP的对比
对比项目 | OLTP | OLAP |
---|---|---|
用户 | 操作人员、底层管理人员 | 决策人员、高级管理人员 |
功能 | 日常操作处理 | 分析决策 |
DB**设计** | 基于ER模型,面向应用 | 星型/雪花型模型,面向主题 |
DB**规模** | GB-TB | ≥TB |
数据 | 最新的、细节的、二维的、分立的 | 历史的、聚集的、多维的、集成的 |
存储规模 | 读/写数条(甚至数百条)记录 | 读上百万条(甚至上亿)记录 |
操作频度 | 非常频繁(以秒计) | 比较稀松(以小时甚至以周计) |
工作单元 | 严格的事务 | 复杂的查询 |
用户数 | 数百个-数千万个 | 数个-数百个 |
度量 | 事务吞吐量 | 查询吞吐量、响应时间 |