Cassandra 中的手动压缩

Posted

技术标签:

【中文标题】Cassandra 中的手动压缩【英文标题】:Manual Compaction in Cassandra 【发布时间】:2020-07-12 21:51:11 【问题描述】:

有什么方法可以在 Cassandra 中制作压缩过程手册? 什么时候自动发生?时间段是多少? 另外,memtable的阈值限制是怎么考虑的?

【问题讨论】:

几年前在 Stack 的 DBA 网站上有一个关于此的问题,但关于压缩的要点仍然主要相关,值得一看:dba.stackexchange.com/questions/71781/cassandra-maintenance 【参考方案1】:

Cassandra 中的压缩是自动发生的,但它的频率取决于所选的压缩策略(默认为大小分层压缩,您需要至少有 4 个大小相似的 SSTable 文件才能触发压缩)。 nodetool compact 也支持手动压缩,但不建议这样做(或至少使用 nodetool compact -s)。

我强烈建议您在DataStax Academy 上观看 DS201 和 DS210 课程,并阅读DSE Architecture Guide(它也适用于 Cassandra)。

【讨论】:

【参考方案2】:

如果你想手动开始压缩,你可以使用 nodetool compact 命令,这里是文档的链接:

http://cassandra.apache.org/doc/latest/tools/nodetool/compact.html

什么时候发生压缩,这取决于你的压缩策略。您可以查看此链接,您可以在其中找到有关压缩的一些详细信息:

https://docs.datastax.com/en/archived/cassandra/3.0/cassandra/dml/dmlHowDataMaintain.html

我希望这会有所帮助!

【讨论】:

以上是关于Cassandra 中的手动压缩的主要内容,如果未能解决你的问题,请参考以下文章

Spark Cassandra 连接器:SQLContext.read + SQLContext.write 与手动解析和插入(JSON -> Cassandra)

Cassandra 更新过程澄清

如何处理磁盘上 Cassandra 中的空目录?

Cassandra nodetool 状态在不同节点上不一致,挂起的压缩任务太多

Cassandra 磁盘空间开销

向cassandra添加节点时,请等待压缩?