cassandra 表中的行键

Posted

技术标签:

【中文标题】cassandra 表中的行键【英文标题】:row key in cassandra table 【发布时间】:2015-06-16 16:12:55 【问题描述】:

我是 Cassandra 的新手,我对 Cassandra 中的行键和分区键感到困惑。

我正在创建一个类似的表:

Create table events( day text, hour text, dip text, sip text, count counter,
primary key((day,hour), dip, sip));

据我了解,上表中的day和hour列构成了partition key,dip、sip列构成了clustering key。

我的理解是,行键只不过是分区键,即日、小时列形成行键。

我的理解正确吗?谁能澄清一下?

【问题讨论】:

【参考方案1】:

我的理解正确吗,谁能澄清一下?

是的,你的理解是正确的。行键是指分区键的“老派”方式。分区键(您可能理解)是 CQL PRIMARY KEY 的一部分,它确定数据在集群中的存储位置。在您的情况下,分区键中的数据将按 dipsip(您的集群键)排序。

您应该阅读 John Berryman 的文章 Understanding How CQL3 Maps To Cassandra’s Internal Data Structure。它很好地解释了您的表结构是如何“在后台”映射的。

【讨论】:

这个工具将帮助您可视化差异sestevez.com/sestevez/CASTableSizer 很高兴您喜欢它,您还可以让它为您的工作负载生成压力 yaml。离数据模型优化和可预测的可扩展性又近了一步。

以上是关于cassandra 表中的行键的主要内容,如果未能解决你的问题,请参考以下文章

需要从 cassandra 中删除的行键中添加数据

Cassandra数据库上数据分析的替代方案

Cassandra 无法从表中查询行总和

副本存储在cassandra环中的哪个节点?

cassandra中的分区计数

Cassandra中的行排序