Cassandra中的3分割
我需要用Cassandra使用Murruil3Partitioner对数据进行分区的方法对数据进行分区。(在我的64位操作系统中) 我尝试了以下代码:Cassandra中的3分割,cassandra,datastax-java-driver,Cassandra,Datastax Java Driver,我需要用Cassandra使用Murruil3Partitioner对数据进行分区的方法对数据进行分区。(在我的64位操作系统中) 我尝试了以下代码: byte[] key="jim".getBytes("UTF-8"); ByteBuffer key=ByteBuffer.wrap(key); Murmur3Partitioner murmur3Partitioner=new Murmur3Partitioner(); murmur3Partitioner.getToken(key);
byte[] key="jim".getBytes("UTF-8");
ByteBuffer key=ByteBuffer.wrap(key);
Murmur3Partitioner murmur3Partitioner=new Murmur3Partitioner();
murmur3Partitioner.getToken(key);
但在下面的链接中,它没有给出确切的值:
在Cassandra中是否有其他方法可以找到为密钥生成的令牌
在Cassandra中是否有其他方法可以找到为密钥生成的令牌
是的,您可以使用token()
函数(仅供参考-firstname
是我下面的分区键):
(9排)
注意区分大小写很重要,为“Jim”和“Jim”生成了不同的标记
但在下面的链接中,它没有给出确切的值
我怀疑您上面链接的文档只是作为示例编写的,没有使用确切的值
您在上面为“jim”生成的值是否等于2680261686609811218?如果是这样,那么上面的代码应该可以工作。但问题是如何在Cassandra中持久化数据之前找到令牌?@AkhilKKamal Edit make。您的问题是“Cassandra中是否有其他方法可以找到为密钥生成的令牌。”它没有说明如何在持久化密钥之前找到密钥。“我需要像Cassandra使用Murruse3Partitioner对数据进行分区一样对数据进行分区。”我不能在应用程序中使用Cassandra服务。我只想用卡桑德拉算法。
aploetz@cqlsh:stackoverflow2> SELECT firstname,token(firstname),id,lastname
FROM usersbyfirstname ;
firstname | token(firstname) | id | lastname
-----------+----------------------+----+-----------
Zoe | -8194813905246394475 | 1 | Washburne
Hoban | -7767187360478820688 | 3 | Washburne
Jayne | -3415298744707363779 | 4 | Cobb
carol | -3169904368870211108 | 9 | lowercase
johnny | -2876970619340914070 | 7 | lowercase
jim | 2680261686609811218 | 6 | lowercase
Mal | 4016264465811926804 | 2 | Reynolds
suzy | 4113135677556563029 | 8 | lowercase
Jim | 7378266065874653000 | 5 | Bob