在本文中,我们将讨论SSTable,它是Cassandra和SSTable组件中的存储引擎之一,并且,我们还将介绍SSTable中不同数据库文件中保留的信息类型。让我们一一讨论。
SSTable:
它是Apache Cassandra中的存储引擎之一,即用于行存储的不可变数据文件的存储。在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。