Cassandra中的3分割

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);

我需要用Cassandra使用Murruil3Partitioner对数据进行分区的方法对数据进行分区。(在我的64位操作系统中)

我尝试了以下代码:

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