nosql – Cassandra中的聚类键

前端之家收集整理的这篇文章主要介绍了nosql – Cassandra中的聚类键前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在给定的物理节点上,给定分区密钥的行以由聚类键引发的顺序存储,使得以该聚类顺序的行的检索特别有效。 http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt聚类键引起什么样的排序?
假设你的群集键是
k1 t1,k2 t2,...,kn tn

其中ki是第i个密钥名称,ti是第i个密钥类型。然后,订单数据存储在字典排序中,其中每个维度都使用该类型的比较器进行比较。

那么(a1,a2,…,an) (b1,b2,…,bn)如果a1 < b1使用t1比较器,或a1 = b1和a2 < b2使用t2比较器,或(a1 = b1和a2 = b2)和a3 < b3使用t3比较器等。 这意味着找到具有某个k1 = a的所有行是有效的,因为数据被一起存储。但是,对于i>找到ki = x的所有行都是无效的实际上,这样的查询是不允许的 – 允许的唯一的聚类键限制指定零个或多个聚类键,从第一个没有丢失的首先开始。

例如,考虑模式

create table clustering (
    x text,k1 text,k2 int,k3 timestamp,y text,primary key (x,k1,k2,k3)
);

如果您做了以下插入:

insert into clustering (x,k3,y) values ('x','a',1,'2013-09-10 14:00+0000','1');
insert into clustering (x,'b','2013-09-10 13:00+0000',2,'1');

那么它们按照这个顺序存储在磁盘上(从x =’x’返回的聚类的顺序select *):

x | k1 | k2 | k3                       | y
---+----+----+--------------------------+---
 x |  a |  1 | 2013-09-10 14:00:00+0000 | 1
 x |  a |  2 | 2013-09-10 13:00:00+0000 | 1
 x |  b |  1 | 2013-09-10 13:00:00+0000 | 1
 x |  b |  1 | 2013-09-10 14:00:00+0000 | 1

k1排序主导,然后k2,然后k3。

猜你在找的NoSQL相关文章