数据湖
数据湖是一种数据存储结构,可以存储任何类型的数据,包括像图片文档这样的非结构化数据,数据湖通常更大,成本更为廉价。存储其中的数据不需要满足特定的schema,数据湖也不会尝试去将特定的schema施行其上。相反的是,数据的拥有者通常会在读取数据的时候解析schema(schema-on-read),当处理相应的数据时,将转换施加其上。
ODS和数据湖有两个共同的重要特征:不加转换的原始数据,可以进行不预先设置的分析。ODS一般用来存储业务运营数据,也就是OLTP(联机事务处理)数据的快照和历史,而数据仓库一般用来存储分析数据,对应OLAP(联机分析处理)需求。
- 存储海量的原始数据
- 支持任意的数据格式(结构化、半结构化、非结构化)
- 较强的分析和处理能力
数据仓库
它主要存储的是以关系型数据库组织起来的结构化数据。数据通过转换、整合以及清理,并导入到目标表中。在数仓中,数据存储的结构与其定义的schema是强匹配的。
- 面向主题:按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关
- 不可更新:数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询
- 非规范化:数据可以是而且经常是冗余的
- 大容量:时间序列数据集合通常都非常大
- 效率高:通过表结构优化、存储优化等手段,提升查询效率
| 名称 | 数据仓库 | 数据湖 |
|---|---|---|
| 读写模式 | 写时模式,数据存储前定义Schema | 读时模式,读取数据时定义Schema |
| 数据价值 | 提前明确 | 无须提前明确 |
| 存储数据类型 | 清洗后的结构化数据 | 原始数据、非结构化和半结构化数据 |
| 容量扩展成本 | 中等成本 | 低成本 |
| 支持功能 | 统计、报表和传统 BI分析 | 敏捷数据集成,支持编程框架 |
| 构建成本 | 重量级,时间成本高、投资规模大 | 轻量级,比较灵活,成本低 |
数据仓库中的数据由原始数据经过清理、填充和转换后按照核心业务逻辑组织生成。