数据岗位面试题更新 2026-08-05

请说明在 Cassandra 中实现数据压缩与存储优化的具体方法有哪些?

数据性能优化技术原理方案权衡Apache Cassandra

考察说明

考查对 Cassandra 存储引擎中压缩机制与优化策略的理解。

回答思路

  1. 【回答框架 1】Cassandra 默认使用 LZ4Compressor 或 SnappyCompressor 进行 SSTable 压缩,可通过压缩参数如 chunk_length_in_kb 控制压缩块大小,权衡压缩率与读取性能。
  2. 【回答框架 2】存储优化包括设置合理的 compaction strategy(如 SizeTieredCompactionStrategy 或 LeveledCompactionStrategy),调整 bloom_filter_fp_chance 降低误判率,以及配置 caching 参数如 row_cache 和 key_cache。
  3. 【回答框架 3】数据模型层面,避免大量 tombstone,合理设计主键和 clustering key,使用 TTL 自动过期数据,减少不必要的数据写入。
  4. 【回答框架 4】监控与维护方面,定期执行 nodetool compact 或 cleanup,结合磁盘使用情况调整 memtable 大小和 commit log 配置,提升整体存储效率。
  5. 【关键点 1】压缩通过压缩器与 chunk_length_in_kb 平衡 CPU 与 IO。
  6. 【关键点 2】compaction 策略选择影响空间放大与读放大。
  7. 【关键点 3】bloom_filter_fp_chance 与缓存配置直接影响读性能。
  8. 【关键点 4】tombstone 与 TTL 管理是存储优化的关键。
  9. 【关键点 5】nodetool 维护操作可回收空间并提升性能。
  10. 【易错点 1】过度压缩可能增加 CPU 开销,需按工作负载调整。
  11. 【易错点 2】LeveledCompaction 写放大较高,不适合写密集场景。
  12. 【易错点 3】忽略 tombstone 清理会导致空间无法有效回收。