在本文中,我们将讨论如何使用分区器在 Cassandra 中使用 TOKEN函数。 Cassandra 查询语言支持 3 种不同类型的分区器。
CQL 中的分区器:
1. Murmur3partitioner
2. RandomPartitioner
3. ByteOrderedPartitioner
让我们一一讨论。
- Murmur3partitioner :
它是 Cassandra 3.0 中的默认分区程序。如果我们使用 TOKEN函数,那么它会根据 MurmurHash 哈希值在集群上分发数据。提供良好的性能和快速散列也很有用。 - 随机分区器:
它是 Cassandra 1.2 之前的默认分区程序。它使用 MD5 哈希值跨集群分发数据。 - 字节顺序分区器:
在 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函数参考。