1988年,IBM公司在面对企业信息系统日益分散、数据孤岛问题日益严重的背景下,首次提出了”信息仓库”(Information Warehouse)的概念。
1991年,数据仓库领域迎来重要里程碑。被誉为”数据仓库之父”的Bill Inmon(比尔·恩门)出版了开创性的著作《Building the Data Warehouse》。该书首次系统性地定义了数据仓库的概念。
数仓四大特征
1. 面向主题的(Subject Oriented)
主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。
面向主题的数据组织方式是数据仓库的核心特征之一,它通过业务主题而非具体应用来组织数据。
2. 集成的(Integrated)
数据仓库的数据来源非常广泛,通常包括:
- 内部数据源:企业内部的多个业务系统数据库如ERP、CRM、SCM等,各类操作型数据文件,用户行为日志,企业内部文档数据
- 外部数据源:第三方数据供应商提供的数据,公开数据集,社交媒体数据,行业报告和市场调研数据
操作型数据与分析性数据的主要区别体现在数据特征差异、数据集成挑战和数据转换过程。数据转换过程包括数据清洗、数据转换、数据集成和数据加载,采用ETL(抽取-转换-加载)或ELT(抽取-加载-转换)流程。
3. 相对稳定的(Non-Volatile)
数据仓库数据反映的是一段相当长的时间历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据。
数据稳定主要是针对应用而言,数据仓库的用户对数据的操作大多是数据查询或比较复杂的挖掘,一旦数据进行数据仓库后,一般情况下被较长时间保留。
4. 反映历史变化的(Time Variant)
数据仓库包含各种粒度的历史数据,数据仓库中的数据可能与某个特定日期、星期、月份、季度或者年份有关。
虽然数据仓库不会修改数据,但并不是说数据仓库的数据是永远不变的。数据仓库的数据也需要更新,以适应决策的需要:
- 数据仓库的数据时限一般要远远长于操作型数据的时限
- 业务系统存储的是当前数据,而数据仓库中的数据是历史数据
- 数据仓库中的数据是按照时间的顺序追加的,都带有时间属性
数仓作用
- 整合企业业务数据,建立统一的数据中心
- 产生业务报表,了解企业的经营情况
- 为企业运营、决策提供数据支持
- 可以作为各个业务的数据源,形成业务数据互相反馈的良性循环
- 分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果
- 开发数据产品,直接或间接的为企业盈利
对比数据库:OLTP vs OLAP
数据库与数据仓库的区别,实际上比的是OLTP与OLAP的区别。
OLTP(联机事务处理)
也称为面向交易的处理系统。主要针对具体业务在数据库系统的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。
OLAP(联机分析处理)
一般针对某些主题的历史数据进行分析,支持管理决策。
本质对比
| 特性 | OLTP | OLAP |
|---|---|---|
| 目的 | 日常事务处理 | 分析决策 |
| 数据 | 当前数据 | 历史数据 |
| 操作 | 增删改查 | 查询为主 |
| 设计 | 面向事务 | 面向主题 |
| 范式 | 符合范式 | 反范式 |
以银行为例
- 数据库(事务系统):客户在银行做的每笔交易都会写入数据库,用来记账
- 数据仓库(分析系统):某银行分行一个月发生了多少次交易,该分行当前存款余额是多少
数据仓库是数据库已经存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它绝对不是所谓的大型数据库。