加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

nosql – Cassandra中的聚类键

发布时间:2020-12-13 13:32:31 所属栏目:百科 来源:网络整理
导读:在给定的物理节点上,给定分区密钥的行以由聚类键引发的顺序存储,使得以该聚类顺序的行的检索特别有效。 http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt聚类键引起什么样的排序? 假设你的群集键是 k1 t1,k2 t2,...,kn tn 其中ki是第i个密
在给定的物理节点上,给定分区密钥的行以由聚类键引发的顺序存储,使得以该聚类顺序的行的检索特别有效。 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。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读