Kudu 采用了独特的存储架构,融合了行式存储和列式存储的优势。其核心组件包括:
- Tablet:数据存储的基本单元,类似于 Bigtable 中的 Tablet 或 HBase 中的 Region。每个 Tablet 包含多个 RowSet,并按主键范围进行分区。
- RowSet:Tablet 中数据的组织单位,分为内存中的 MemRowSet 和磁盘上的 DiskRowSet。MemRowSet 负责处理写入操作,而 DiskRowSet 则负责存储历史数据。
- Tablet Server:负责管理 Tablet,处理数据读写请求,并与 Master Server 进行通信。
- Master Server:负责集群管理,包括元数据管理、负载均衡和故障恢复。
Kudu 的架构设计使其能够同时支持高效的随机读写和分析查询,适用于需要实时数据处理的场景。