给定一个分布式系统,该系统使用主键“url”持久化记录。考虑到多台服务器正在收集数据,“url”是一种方便、方便和准确的保证唯一性的方法。我们的系统目前以每分钟10,000次的频率查询文档。
我们希望添加另一个独特的键,即“uuid”,以便我们可以将资源引用为:
http://example.com/fju98hfhsiu
而不是,例如:
is%2Fa%2Fpagewitha%2Flong-url.html
似乎创建了UUID的is not ideal in cassandra二级索引。有没有办法避免在cassandra中创建UUID的二级索引?
发布于 2017-08-28 07:05:17
让我们从以下事实开始:最佳实践和Cassandra的主要模式是为查询创建表,而不是为表创建查询,如果需要在表上创建索引,则是“自动”反模式。基于此,最简单的解决方案就是使用两个带有两个键的表。
在您的例子中,"uuid“不是UUID,它是域和散列的某种连接,在.If的其余部分,我相信您的应用程序可以在请求时生成这个键,您可以使用它作为分区键,将完整的URL用作集群键。
此外,如果没有热点域(例如http://example.com),则可以使用域作为分区键,使用散列和长urls作为群集键,创建物化视图以支持不同的查询。
最后,只需添加辅助索引,并查看在特定情况下的性能影响。如果它对您有效,并且您不想处理两个表、物化视图等,只需使用它。
https://stackoverflow.com/questions/45891476
复制相似问题