从有关 Cassandra 的各种文档中,它清楚地表明它将行键转换为 MD5,然后将它们保存到数据库中。
如果我的行键已经是 MD5 和,有没有办法让 Cassandra 知道,从而避免让它计算 MD5 的 MD5?
PS我正在谈论的表中有文件,键是文件MD5总和。
从有关 Cassandra 的各种文档中,它清楚地表明它将行键转换为 MD5,然后将它们保存到数据库中。
如果我的行键已经是 MD5 和,有没有办法让 Cassandra 知道,从而避免让它计算 MD5 的 MD5?
PS我正在谈论的表中有文件,键是文件MD5总和。
Cassandra 实际上所做的是根据分区程序定义的内容对分区键进行哈希处理。最初的分区器是 MD5,但 Cassandra 的现代版本默认为 Murmur3(不是 QUITE murmur3,但基本上是 murmur3)。
在任何一种情况下,是的,Cassandra 都会对分区键进行哈希处理,因为无法让 Cassandra 知道它已经是 MD5。
如果您真的想避免散列,您可以查看其他替代分区器(例如字节排序或顺序保留),或者编写自己的实现IPartitioner。但是请注意,如果您确实使用了不同的分区器,它将用于集群中的所有表/键空间。