数据存储

核心原理与架构设计

存储层的重要性与核心挑战

存储层是大数据系统的基础与性能瓶颈所在,其设计直接决定系统能否支撑 PB 级数据处理。设计的最大挑战是"容量-性能-成本的不可能三角":

因此,设计需兼顾技术前瞻性,避免未来高成本的架构重构。

存储抽象

数据仓库

数据湖

一个集中式存储库,允许以任意规模存储所有结构化和非结构化数据。数据湖侧重于ODS的层管理,由于数据湖没有固定的结构,可以使用数据湖来存储大量的原始数据。通过一个数据湖中间层以支持ODS层之后不同方式的使用或处理

常见的实现形式为表格式,只负责依照某种格式存储到存储系统中,再由独立的查询引擎实现读取数据查询

湖仓一体

业界主流有两种做法:

  1. 将数据仓库构建在数据湖之上
  2. 数据仓库与数据湖独立,二者通过消息通道进行数据同步

数据平台

提供了可互操作的工具的生态系统,与核心数据存储层紧密结合。

数据湖可以看作是一种开放的数据平台

存储系统

数据库

分布式存储

文件存储

块存储

对象存储

核心特征

主要优点

分布式文件系统

HDFS(Hadoop分布式文件系统)

HDFS是为大数据批处理场景设计的分布式文件系统,特点包括:

NoSQL存储

主要类型与特点

列式分析数据库

主要特点

流式存储

像Apache Kafka这样的分布式、可扩展的流框架现在允许极长的流数据保留。Kafka通过将旧的、不经常访问的消息推送到对象存储中来支持无限期的数据保留

区块链

存储设计的六大考量

1. 可扩展性与成本弹性

架构应支持线性扩容,避免迁移与重构。扩容应为低成本操作,可利用公有云弹性资源。

2. 多样化数据类型支持

3. 分层存储策略

数据按访问频率分为:热、温、冷、归档。各层采用不同技术与成本结构,实现总体最优。

4. 数据生命周期管理

自动迁移与清理过期数据,冷数据采用高压缩、低成本存储。

5. 读写模式优化

6. 成本与可运维性控制

成本由硬件、软件、运维三部分构成。运维复杂度(如扩容、迁移、故障恢复)是隐性成本的主要来源。安全合规设计需从第一天考虑(加密、权限、审计等)。

主流存储方案对比

类型代表技术特点适用场景
分布式文件系统HDFS支持PB级批量处理、顺序写入、扩展性强;小文件性能差离线分析、数据湖底层
NoSQL存储HBase、MongoDB、Cassandra高并发写入、实时查询、支持半结构化数据实时计算、日志、特征存储
列式分析数据库ClickHouse、Doris、Kudu查询优化、压缩率高、支持并行分析OLAP、BI、指标分析
对象存储OSS、S3弹性扩展、低成本、支持多数据类型冷数据、归档、数据湖核心

设计思想与趋势

数据目录

一个集中存储元数据的平台,用于管理和查询整个组织的数据。它与各种系统集成,跨运营和分析数据源工作,提供数据脉络和关系,并允许用户编辑数据描述。数据目录通常提供一个中央场所,用户可以查看、查询和存储元数据

数据共享

允许组织和个人与特定实体共享特定的数据和精心定义访问权限

模式

数据的预期形式是什么?文件的格式是什么?是结构化的、半结构化的,还是非结构化的?预计有哪些数据类型?数据如何融入一个更大的层次结构?它是否通过共享键或其他关系与其他数据相连?

计算与存储分离

将数据存储系统(如对象存储、数据湖)与计算资源(如虚拟机、容器、数据处理引擎)分离管理和运行。数据存储在一个独立的存储系统中,而计算资源可以根据需要动态分配和释放,处理存储中的数据

数据存储生命周期

对比项热数据暖数据冷数据
访问很频繁不频繁不频繁
存储开销昂贵中等便宜
检索费用便宜中等昂贵