数据存储
存储抽象
数据仓库
数据湖
一个集中式存储库,允许以任意规模存储所有结构化和非结构化数据。数据湖侧重于ODS的层管理,由于数据湖没有固定的结构,可以使用数据湖来存储大量的原始数据。通过一个数据湖中间层以支持ODS层之后不同方式的使用或处理
常见的实现形式为表格式,只负责依照某种格式存储到存储系统中,再由独立的查询引擎实现读取数据查询
湖仓一体
业界主流有两种做法:
- 将数据仓库构建在数据湖之上
- 数据仓库与数据湖独立,二者通过消息通道进行数据同步
数据平台
提供了可互操作的工具的生态系统,与核心数据存储层紧密结合。
数据湖可以看作是一种开放的数据平台
存储系统
数据库
分布式存储
文件存储
- 本地磁盘
- NAS
- 云文件系统
块存储
- RAID
- SAN
- 云虚拟块存储
- VPS本地实例卷
对象存储
特征:
- 键值存储:对象存储使用键值对来存储数据对象。
- 不可变性:一旦写入,对象变为不可更改,要修改数据必须重写整个对象。
- 无随机写入或追加操作:对象不支持随机写入或追加操作,只能作为字节流一次性写入。
- 范围请求:支持通过范围请求进行随机读取。
- 无服务器:作为“无服务器”服务,工程师不需要管理底层服务器集群或磁盘。
- 并行流写入和读取:支持在多个磁盘上进行高性能的并行流写入和读取。
- 跨可用区存储:数据通常保存在多个可用区,提高数据的耐用性和可用性。
- 可扩展存储空间:存储空间高度可扩展,几乎无限制。
优点:
- 简化管理:无需管理底层硬件,工程师可以直接管理和使用存储服务。
- 高可用性和耐用性:数据保存在多个可用区,降低数据丢失的风险。
- 弹性扩展:存储和处理能力可以根据需求灵活扩展,适应大流量和并行处理需求。
- 成本效益:按需付费,避免了提前为硬件做计划的成本,对预算有限的小型组织尤为有利。
- 分离计算和存储:允许使用短暂的计算集群处理数据,进一步优化资源利用。
- 大数据支持:适用于处理大数据,支持大规模并行处理和存储。
- 无限存储:存储空间几乎无限,工程师可以快速存储大量数据,不受物理硬件限制。
- 数据持久性:数据写入后不可更改,确保数据的持久性和完整性。
分布式文件系统
流式存储
像Apache Kafka这样的分布式、可扩展的流框架现在允许极长的流数据保留。Kafka通过将旧的、不经常访问的消息推送到对象存储中来支持无限期的数据保留
区块链
设计思想与趋势
数据目录
一个集中存储元数据的平台,用于管理和查询整个组织的数据。它与各种系统集成,跨运营和分析数据源工作,提供数据脉络和关系,并允许用户编辑数据描述。数据目录通常提供一个中央场所,用户可以查看、查询和存储元数据
数据共享
允许组织和个人与特定实体共享特定的数据和精心定义访问权限
模式
数据的预期形式是什么?文件的格式是什么?是结构化的、半结构化的,还是非结构化的?预计有哪些数据类型?数据如何融入一个更大的层次结构?它是否通过共享键或其他关系与其他数据相连?
计算与存储分离
将数据存储系统(如对象存储、数据湖)与计算资源(如虚拟机、容器、数据处理引擎)分离管理和运行。数据存储在一个独立的存储系统中,而计算资源可以根据需要动态分配和释放,处理存储中的数据
数据存储生命周期
对比项 | 热数据 | 暖数据 | 冷数据 |
---|---|---|---|
访问 | 很频繁 | 不频繁 | 不频繁 |
存储开销 | 昂贵 | 中等 | 便宜 |
检索费用 | 便宜 | 中等 | 昂贵 |