📜  Cassandra 中具有 TOKEN函数的分区器

📅  最后修改于: 2021-09-08 16:27:38             🧑  作者: Mango

在本文中,我们将讨论如何使用分区器在 Cassandra 中使用 TOKEN函数。 Cassandra 查询语言支持 3 种不同类型的分区器。

CQL 中的分区器:

1. Murmur3partitioner 
2. RandomPartitioner
3. ByteOrderedPartitioner 

让我们一一讨论。

  1. Murmur3partitioner :
    它是 Cassandra 3.0 中的默认分区程序。如果我们使用 TOKEN函数,那么它会根据 MurmurHash 哈希值在集群上分发数据。提供良好的性能和快速散列也很有用。
  2. 随机分区器:
    它是 Cassandra 1.2 之前的默认分区程序。它使用 MD5 哈希值跨集群分发数据。

  3. 字节顺序分区器:
    在 Cassandra 查询语言中,字节序分区器数据基于数据按关键字字节在集群上分布。它用于 Cassandra 查询语言中的有序分区。它对于向后兼容性也很有用。

下面给出的表格有助于理解,让我们来看看。

Partitioner Name Data Type Distribute data over cluster based on
Murmur3Partitioner bigint MurmurHash hash values
RandomPartitioner varint MD5 hash values
ByteOrderedPartitioner blob data lexically by key bytes

让我们了解使用分区键的 TOKEN函数,并根据 Token 分区键返回查询。首先我们正在创建表。

CREATE TABLE User_info
(
Id int,
Name text,
Address text,
PRIMARY KEY(Id, Name)
); 

将数据插入表 User_info 使用以下 CQL 查询:

INSERT INTO User_info (Id, Name, Address) 
       VALUES (301, 'Ashish', 'Delhi');
INSERT INTO User_info (Id, Name, Address) 
       VALUES (302, 'Rana', 'Mumbai');
INSERT INTO User_info (Id, Name, Address) 
       VALUES (303, 'Abi', 'Noida');
INSERT INTO User_info (Id, Name, Address) 
       VALUES (302, 'me', 'Noida'); 

我们来看一下。

SELECT * 
FROM User_info; 

Id Name Address
301 Ashish Delhi
302 Me Noida
302 Rana Mumbai
303 Abi Noida

通过使用TOKEN函数。

SELECT TOKEN(Id) 
FROM User_info; 

从业者参考,TOKEN函数参考。