📜  Apache Cassandra中的SSTable

📅  最后修改于: 2021-08-27 03:59:42             🧑  作者: Mango

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

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

图– Apache Cassandra中的SSTable

关键点 :

  • 在Apache Cassandra中,您将检查数据存储方式,然后将SSTables和SSTables中的数据从Memtables刷新到磁盘或从其他节点进行流传输。
  • 在Cassandra中,插入数据时,每次写入时都会包含时间戳。
  • 在Cassandra中,压缩是将多个SSTable组合为一个大SSTable的概念,并且在可以删除旧的SSTable之后一旦写入了新的SSTable。
    仅保留最新的时间戳。

SSTable的组成部分:
在Cassandra中,SSTable具有存储在多个文件中的多个组件,如下所示。

  • Data.db –
    在SSTable中,Data.db存储实际数据,即行的内容。
  • Index.db –
    它是SSTable的组件,其中从分区键到Data.db文件中的位置的索引。它还可以包括对分区内行的索引。
  • Summary.db –
    在Cassandra中,SSTable组件Summary.db具有(默认情况下)Index.db文件中第128个条目的样本。
  • Filter.db –
    在SSTable中,它是分区键的Bloom Filter。
  • CompressionInfo.db –
    在SSTable中,它是保留有关偏移量的元数据的组件。 CompressionInfo.db将压缩块的长度保留在Data.db文件中。
  • Statistics.db –
    它是SSTable中保留数据统计信息的重要组件之一。在Cassandra中,它是一个SSTable组件,用于存储有关SSTable的元数据,并包括有关时间戳,墓碑,群集键,压缩,修复,压缩,生存时间(TTL)值等的信息。
  • Digest.crc32 –
    在Cassandra中,此SSTable组件具有Data.db文件的CRC-32摘要。
  • TOC.txt –
    在Cassandra中,此SSTable组件具有SSTable组件文件的纯文本列表。在SSTable中,在Data.db文件中,行是按分区组织的。这些分区以令牌顺序存储,这样,当Murmur3Partition选择的行以其聚簇键的顺序存储时,通过分区键的哈希值存储。

笔记 –
在Apache Cassandra中,可以选择使用基于块的压缩来压缩SSTables。