【问题标题】:Cassandra insert value disappearCassandra插入值消失
【发布时间】:2019-04-24 00:31:32
【问题描述】:

我想使用 Cassandra 数据库系统来创建表。原始数据在图片中。

所以我创建这些表并插入值

Create table course(
    Course_ID text PRIMARY KEY,
    Course_Name text,
    student_id text

);

但是,当我想从美国历史课程中选择所有学生 ID 时:select * from course where Course_Name = 'Biology';

Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING"

然后当我尝试打印出所有表格时,我发现所有重复值的部分值都丢失了......是不是因为我设计表格的方式不对?如何更改它并从一门课程中选择所有学生 ID? 谢谢!!

【问题讨论】:

  • 为了从不同的角度构建 Carlos 的答案,当您不打算通过它进行查询时,为什么要将 course_id 指定为 PRIMARY KEY

标签: cassandra cql


【解决方案1】:

问题是您对表course 的查询未使用主键;与关系数据库不同,Cassandra 中的表是根据您要执行的查询设计的,在这种情况下,您可以将课程名称作为复合键的一部分:

Create table course(
  Course_ID text,
  Course_Name text,
  student_id text,
  PRIMARY KEY (Course_Name, Course_ID)
);

已经有答案解释了this one等键之间的区别,您可能还想阅读this article from Datastax

【讨论】:

    猜你喜欢
    • 2014-11-23
    • 2011-07-24
    • 2015-10-15
    • 2017-04-04
    • 2018-02-27
    • 2016-09-15
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多