数据仓库(Data Warehouse)和普通数据库(Database)虽然都用于存储和管理数据,但设计目标、应用场景和架构特性有显著区别。以下是两者的核心差异:
1. 设计目的
-
数据库
- 事务处理:用于日常业务操作(OLTP,联机事务处理),如订单录入、用户注册、实时交易等。
- 高并发写入:优化频繁的增删改查(CRUD)操作,保证数据一致性和完整性。
-
数据仓库
- 分析决策:用于数据分析、报表生成和商业智能(OLAP,联机分析处理)。
- 批量读取:侧重复杂查询和大规模数据聚合,而非高频写入。
2. 数据特性
-
数据库
- 当前数据:存储最新的、动态的业务数据(如用户当前余额)。
- 规范化设计:通过范式化减少冗余,提高事务效率(如3NF)。
-
数据仓库
- 历史数据:存储长期积累的静态数据,支持时间序列分析(如过去5年销售趋势)。
- 非规范化设计:采用星型/雪花模型(事实表+维度表),优化查询性能。
3. 数据更新
-
数据库
- 实时更新:数据随时变化,如电商库存实时扣减。
-
数据仓库
- 批量加载:通过ETL(抽取、转换、加载)定期从数据库或其他源同步数据,更新延迟较高。
4. 查询模式
-
数据库
- 简单查询:短平快的操作(如根据ID查订单)。
- 低延迟:响应时间通常在毫秒级。
-
数据仓库
- 复杂分析:多表关联、聚合计算(如按月统计各地区销售额)。
- 高吞吐:查询可能耗时数秒甚至分钟。
5. 技术架构
-
数据库
- 行式存储:适合单条记录读写(如MySQL、PostgreSQL)。
-
数据仓库
- 列式存储:优化压缩和扫描(如Redshift、Snowflake、BigQuery)。
- 分布式计算:处理海量数据(如Hadoop、Spark)。
6. 典型应用场景
-
数据库
- 银行转账、在线购物、社交媒体的实时交互。
-
数据仓库
- 生成年度财报、用户行为分析、市场趋势预测。
类比说明
- 数据库像收银台:处理当下交易,快速精准。
- 数据仓库像分析师办公室:汇总所有交易记录,研究长期趋势。
补充:数据湖 vs 数据仓库
- 数据湖(Data Lake)存储原始数据(结构化/非结构化),适合探索性分析;
- 数据仓库存储清洗后的结构化数据,适合标准化报表。