0

目前,我们有每个超过 100 GB 的表。有人告诉我,如果我们有很多小桌子,这将更容易处理。这个想法是 Cassandra 在执行压缩和压缩时需要大约等于表大小的可用空间量。如果使用较小的表,则运行这些任务时每个节点上所需的可用空间百分比会更小。

如果我所有的访问都只在大表中通过键进行,那么在我的数据库访问代码前面放置一些一致的哈希逻辑来确定哪个表包含什么键并不难。

Cassandra 在软件中使用许多小表有什么优势吗?是否可以通过更改集群的配置来获得相同的优势?

4

1 回答 1

1

是的,原则上,您可以通过将数据拆分为多个表或键空间来降低可用磁盘要求。

更好的选择可能是使用替代压缩策略。默认的Sized Tiered (STCS) 需要保留多达 50% 的可用磁盘空间。读取繁重的工作负载可能能够使用仅需要 10% 可用磁盘空间的级别分层(LTCS),而时间序列数据可以使用日期分层(DTCS),其中可用磁盘空间要求可通过设置窗口大小进行调整。

在使用 LTCS 或 DTCS 之前,您必须确保您的工作负载适合压缩策略。如果配置不正确或在错误的工作负载上使用,这两者都会带来严重的性能风险:写入繁重的工作负载在 LTCS 上表现不佳。尝试在单个节点上测试新的压缩策略并查看性能指标以验证该策略是否符合性能预期。

于 2016-08-30T03:43:44.240 回答