当前位置: 首页 > 知识库问答 >
问题:

cassandra表中的行键

王宏深
2023-03-14
Create table events( day text, hour text, dip text, sip text, count counter,
primary key((day,hour), dip, sip));

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

我的理解正确吗?有人能澄清这一点吗?

共有1个答案

子车鸿才
2023-03-14

我的理解正确吗,有谁能澄清这一点吗?

是的,你的理解是正确的。行键是指分区键的“老派”方式。分区键(正如您可能理解的那样)是CQL主键的一部分,它决定数据在集群中的存储位置。在您的示例中,分区键中的数据将按dipsip(集群键)排序

您应该阅读John Berryman的文章《了解CQL3如何映射到Cassandra的内部数据结构》。它很好地解释了表结构如何“在引擎盖下”映射。

 类似资料:
  • 而且,查询只请求插入的一小部分最新行。我现在遇到的问题是,这些查询的性能与表大小呈负相关。随着表的增长,即使查询只返回几行,获取响应的时间也要长得多。 您能否建议我应该如何修改表模式以避免性能下降(例如,创建索引或设置集群)?谢了!

  • 是否可以用GeoMesa指定键(即复合键)创建一个Cassandra表?我有一个写到Cassandra的spark作业,输出表需要一个复合键。我现在希望通过GeoMesa api而不是直接向Cassandra创建/编写相同的表。格式如下:

  • 命令用于截断表。 如果您截断表,表的所有行将永久删除。 语法: 示例: 我们有一个名为“”的表具有以下数据(创建表并插入数据): 现在,我们使用命令: 现在表已经被截断了,您可以使用SELECT命令验证它。 如下图所示 - 您可以看到表现在被截断。

  • DROP TABLE命令用于删除表。 语法: 示例: 我们来举个例子来演示如何删除/丢弃一个表。 在这里作为演示将删除 表。 使用以下命令后: 现在名为“”的表。 您可以使用命令验证表是否被删除。 这里“”表已被删除; 不会在列系列列表中找到它。 输出结果如下 -

  • 主要内容:添加一列命令用于在创建表后更改表。 您可以使用命令执行两种操作: 添加一列 删除一列 语法: 添加一列 您可以使用命令在表中添加一列。 在添加列时,您必须知道列名称与现有列名称不冲突,并且表不使用紧凑存储选项进行定义。 语法: 示例: 现在举个例子来说明在已经创建的名为“”的表上使用命令。 这里我们在名为的表中添加一个名为student_email的文本数据类型列。 使用以下命令后: 执行上面命令添加一个