聊一聊看似简单的存储
如果这个能成功可太好了
· 4 分钟阅读
🧠 一图总览:「存储」知识体系的五大层级
| 层级 | 描述关键词 | 举例 |
|---|---|---|
| 1. 物理层 | 存储介质(底层硬件) | HDD、SSD、NVMe、NAND Flash、磁带、光盘 |
| 2. 存储结构层 | 存储块组织方式、读写单位 | 块存储(Block)、文件存储(File)、对象存储(Object) |
| 3. 接入层 | 协议/文件系统/存储平台 | NFS、S3 API、POSIX、TOS、HDFS、CephFS、iSCSI |
| 4. 数据格式层 | 数据怎么被组织成文件、表、分区 | Parquet、ORC、Avro、JSON、CSV、Iceberg、Delta Lake |
| 5. 计算对接层 | 谁来消费存储的数据、如何读写、什么协议 | Spark、Trino、Flink、Hive、Pandas、PyArrow、Airflow |
🔹 1. 物理存储介质层
最底层,真正“存”数据的介质。
| 介质类型 | 特点 | 适用场景 |
|---|---|---|
| HDD | 大容量,低成本,慢 | 归档数据、冷数据 |
| SSD | 快速读写,成本适中 | 热数据,数据库 OLTP |
| NVMe | 极高 IOPS,低延迟 | 高频并发写入、事务系统 |
| 磁带 | 超低成本,超大容量 | 备份归档,容灾 |
| RAM-Disk | 纯内存模拟盘 | 超高速缓存,实验测试 |
🔹 2. 存储结构层(块 / 文件 / 对象)
✅ 块存储(Block Storage)
• 最底层的逻辑划分
• 每个卷按固定大小块存储(如 512KB)
• 无文件系统,像裸磁盘
• 🧠 常用于数据库和虚拟机磁盘
✅ 文件存储(File Storage)
• 提供文件和目录结构
• 例:NFS、Lustre、CephFS、ext4、NTFS
• 🧠 多用户读写、熟悉的 POSIX 接口
✅ 对象存储(Object Storage)
• 每个文件作为对象存储(带元信息)
• 没有真正的目录结构,flat 设计
• 例:Amazon S3、TOS、OSS、MinIO
• 🧠 云原生扩展性强,是数据湖/AI 主流选择
🔹 3. 存储接入层
对上层应用暴露接口的方式:
| 接入方式 | 描述 | 举例 |
|---|---|---|
| POSIX | 标准文件系统接口 | 本地磁盘、NFS、CephFS |
| S3 API | 对象存储访问接口 | Amazon S3、TOS、MinIO、OSS |
| HDFS API | 分布式文件系统接口 | Hadoop HDFS、Alluxio、Ozone |
| iSCSI | 块设备网络协议 | 云盘映射、虚拟化平台 |
🔹 4. 数据格式层(存储的内容)
我们通常说的“Parquet 文件”就是这层。
| 格式类型 | 示例 | 特点 |
|---|---|---|
| 文本类 | CSV、JSON、TSV | 易读但冗余大,解析慢 |
| 二进制结构 | Avro、Protobuf、Thrift | 高效编码,跨语言兼容 |
| 列式格式 | Parquet、ORC | 压缩率高,支持列裁剪,适合大数据分析 |
| 数据湖格式 | Iceberg、Delta、Hudi | 元数据管理 + 分区 + ACID + schema 演化支持 |
⚠️ Parquet/ORC 是 数据格式 ⚠️ Iceberg/Delta 是 数据表格管理层格式(Data Lake Table Format)
🔹 5. 计算对接层(上游系统)
这些是“读/写”你存储的数据的工具。
| 系统/工具 | 作用 | 支持的格式/协议 |
|---|---|---|
| Spark | 分布式批处理 | Parquet、ORC、Delta、Hudi、S3、HDFS 等 |
| Trino | 分布式 SQL 引擎 | Iceberg、Hive、MySQL、S3、ORC、Parquet |
| Hive | 数据仓库 | ORC、Parquet、TextFile、HDFS |
| Flink | 流批一体计算框架 | Kafka、Hudi、Iceberg、S3、HDFS |
| Pandas / PyArrow | 本地分析 / 数据科学工具 | Parquet、CSV、ORC、S3、文件系统 |
🧭 总结图谱结构(文字版)
计算层(Trino, Spark, Hive, Flink, Pandas)
↑
数据格式层(Parquet, ORC, Iceberg, Delta, Avro)
↑
存储接入层(S3 API, NFS, HDFS, POSIX)
↑
存储结构层(对象存储、文件存储、块存储)
↑
物理介质层(HDD, SSD, NVMe, RAM, 磁带)
✅ 用例总结(实际场景映射)
| 场景 | 存储系统 | 数据格式 | 计算引擎 |
|---|---|---|---|
| Spark 查询 S3 上的 Parquet 数据 | 对象存储(TOS/S3) | Parquet | Spark |
| Hive 分析 ORC 文件 | HDFS(文件存储) | ORC | Hive |
| Trino 联查 Iceberg + MySQL 表 | 对象存储 + MySQL | Iceberg + 原生表 | Trino |
| 数据科学分析本地文件 | 文件存储(本地 ext4) | Parquet / CSV | Pandas |
| Hudi 流数据写入 + Flink 消费 | 对象存储(TOS/S3) | Hudi | Flink |