📜  Apache Cassandra 中的 SSTable

📅  最后修改于: 2021-09-09 11:57:30             🧑  作者: Mango

在本文中,我们将讨论 SSTable,它是 Cassandra 和 SSTable 组件中的存储引擎之一,并且我们将介绍 SSTable 中不同数据库文件中保存的信息类型。让我们一一讨论。

SS表:
它是 Apache Cassandra 中的存储引擎之一,即存储用于行存储的不可变数据文件。在 Cassandra 中,SSTable 用于在磁盘上持久化数据。

图 – Apache 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。