二、配置压实策略

##压实策略

如compaction所述,压实过程会合并keys,columns,清除逻辑删除表,合并SSTables,并在合并的SSTable中创建新的索引。

在cassandra.yaml文件中,可以配置以下全局压缩参数:

  • snapshot_before_compaction

  • concurrent_compactors

  • compaction_throughput_mb_per_sec

**注:**compaction_throughput_mb_per_sec参数设计用于大型分区。Cassandra在整个系统中对这个进行压实。

Cassandra为测试压实策略提供了启动选项,而不会影响生产工作量。

Cassandra支持以下压缩策略,您可以使用CQL进行配置:

  • **LeveledCompactionStrategy (LCS):**分级压缩策略创建一个固定的,相对较小(默认为160 MB)的SSTables,这些SSTable被分组为级别。在每个级别内,SSTables保证不重叠。每个级别(L0,L1,L2等)是以前的10倍。由于SSTables不断被压缩到更高的级别,因此磁盘I / O在更高级别上更加统一和可预测。在每个级别,行键合并到下一级别的不重叠的SSTable中。这个过程可以提高读取的性能,因为Cassandra可以确定每个级别的哪个SSTables检查是否存在行密钥数据。这个压缩策略是在Google的LevelDB实施之后建模的。另见LCS压实子属性。

  • **SizeTieredCompactionStrategy (STCS):**默认的压缩策略。当磁盘上有许多类似大小的SSTables时,这个策略会触发一个小的压缩,就像table subproperty所配置的一样min_threshold。轻微压缩不涉及密钥空间中的所有表。另请参阅STCS压缩子属性。

  • **TimeWindowCompactionStrategy (TWCS) :**这个策略是时间序列数据的一个替代方案。TWCS使用一系列时间窗口来压缩SSTables 。在时间窗口的情况下,TWCS使用STCS将所有从内存刷新的SSTable压缩成更大的SSTable。在时间窗口结束时,所有这些SSTable被压缩成一个单一的SSTable。然后下一个时间窗口开始,重复这个过程。时间窗口的持续时间是唯一需要的设置。请参阅TWCS压缩子属性。有关TWCS的更多信息,请参阅数据如何维护?。

  • **DateTieredCompactionStrategy (DTCS):**这个策略是时间序列数据的替代方案。它在Cassandra 3.0.8 / 3.8及更高版本中被弃用。DTCS将在一定时间内写入的数据存储在同一个SSTable中。例如,Cassandra将最后一小时的数据存储在一个SSTable 时间窗口中,接下来的4小时数据存储在另一个时间窗口中,依此类推。压缩时触发 min_threshold(默认为4),这些窗口中的SSTables已到达。时间序列工作负载最常见的查询检索数据的最后一小时/一天/一个月。卡桑德拉可以限制返回给那些有相关数据的SSTables。此外,Cassandra可以将已经设置为在SSTable中使用TTL过期的数据与其他预定在大约同一时间到期的数据一起存储。Cassandra可以放弃SSTable而不进行压缩。另请参阅DTCS压缩子属性。
    要配置压缩策略属性和CQL压缩子属性(如要紧缩的最大SSTable数量和最小SSTable大小),请使用CREATE TABLE或ALTER TABLE。

###步骤

1.使用ALTER TABLE语句更新表来设置压缩策略。

ALTER TABLE users WITH compaction = { 'class' :  'LeveledCompactionStrategy'  }

2.将压缩策略属性更改为SizeTieredCompactionStrategy,并使用CQL min_threshold属性指定触发压缩的最小SSTables数量。

ALTER TABLE users WITH compaction = {'class' : 'SizeTieredCompactionStrategy', 'min_threshold' : 6 }

3.可以使用压缩度量标准监视配置结果,请参阅压实度量标准。

4.Cassandra 3.0和更高版本支持Compaction的扩展日志记录。该实用程序必须配置为表配置的一部分。扩展压缩日志存储在一个单独的文件中。有关详细信息,请参阅启用扩展压缩日志记录。

##配置压实策略

可以配置表属性和子属性来管理压实。该CQL表格属性文档描述的类型可用压实选项。压实是默认启用的。

###步骤

1.禁用压实,使用CQL将压实参数enabled设置为false。

CREATE TABLE DogTypes (
              block_id uuid,
              species text,
              alias text,
              population varint,
              PRIMARY KEY (block_id))
            WITH compression = { 'enabled' : false };

2.在现有表上启用压实,使用ALTER TABLE将压缩算法class设置为LZ4Compressor(Cassandra 1.2.2和更高版本),SnappyCompressor或DeflateCompressor。

CREATE TABLE DogTypes (
              block_id uuid,
              species text,
              alias text,
              population varint,
              PRIMARY KEY (block_id))
            WITH compression = { 'class' : 'LZ4Compressor' };

3.更改现有表上的压实,使用ALTER TABLE将压缩算法class设置为 DeflateCompressor。

ALTER TABLE CatTypes WITH compression = { 'class' : 'DeflateCompressor', 'chunk_length_in_kb' : 64 }

4.可以使用CQL调整每个表的数据压实策略以更改表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值