Cassandra:时间序列数据和二级索引

Cassandra : Timeseries data and secondary indexes

假设我有 100K 用户分布在 10K towns/localities 上。我是他们的 recv 时间序列数据,每 5 分钟说一次(对于每个用户) 我没有城镇作为密钥的一部分。

对于这种情况,在 town 上创建二级索引是个好习惯吗?

问候

二级索引有 10,000 个不同的键绝对不是一个理想的场景,因为那将是一个相当高的基数。我建议阅读 Richard Low 关于 'The sweet spot for Cassandra secondary indexing' 的文章。读取性能可能不太理想,因为需要在每个分区的副本上进行索引扫描。

对于您的情况,我建议通过创建一个名为 'users_by_town' 的单独 table 来进行非规范化,这样您就可以按城镇搜索用户。

您始终可以尝试这两种情况,并使用 request tracing 了解此特定场景中二级索引的成本。