在本文中,我们将讨论 SSTable,它是 Cassandra 和 SSTable 组件中的存储引擎之一,并且我们将介绍 SSTable 中不同数据库文件中保存的信息类型。让我们一一讨论。
SS表:
它是 Apache Cassandra 中的存储引擎之一,即存储用于行存储的不可变数据文件。在 Cassandra 中,SSTable 用于在磁盘上持久化数据。
关键点 :
- 在 Apache Cassandra 中,您将检查数据存储方式,然后将 SSTables 和 SSTables 中的数据从 Memtables 刷新到磁盘或从其他节点流式传输。
- 在 Cassandra 中,在插入数据时,每次写入时都会包含时间戳。
- 在 Cassandra 中,compaction 是一种将多个 SSTable 组合成一个大 SSTable 的概念,一旦写入了新的 SSTable,旧的 SSTable 就可以删除。
仅保留最新的时间戳。
SSTable 的组成部分:
在 Cassandra 中,SSTable 有多个组件存储在多个文件中,如下所示。
- 数据.db –
在SSTable中,Data.db存储的是实际数据,即行的内容。 - 索引.db –
它是 SSTable 的组件,其中从分区键到 Data.db 文件中的位置的索引。它还可能包括分区内行的索引。 - 摘要.db –
在 Cassandra 中,SSTable 组件 Summary.db 在 Index.db 文件中每 128 个条目(默认情况下)有一个样本。 - 过滤器.db –
在SSTable中,它是分区键的布隆过滤器。 - 压缩信息.db –
在 SSTable 中,它是保存有关偏移量的元数据的组件。 CompressionInfo.db 将压缩块的长度保存在 Data.db 文件中。 - 统计.db –
它是SSTable中保持数据统计的重要组件之一。在 Cassandra 中,它是一个 SSTable 组件,用于存储有关 SSTable 的元数据,包括有关时间戳、逻辑删除、集群键、压缩、修复、压缩、生存时间 (TTL) 值等的信息。 - 摘要.crc32 –
在 Cassandra 中,这个 SSTable 组件具有 Data.db 文件的 CRC-32 摘要。 - 目录.txt –
在 Cassandra 中,此 SSTable 组件具有 SSTable 组件文件的纯文本列表。在 SSTable 中,在 Data.db 文件中,行按分区组织。这些分区按标记顺序存储,这样当 Murmur3Partition 选择的行按其集群键的顺序存储时,通过分区键的散列。
笔记 –
在 Apache Cassandra 中,可以选择使用基于块的压缩来压缩 SSTable。