Phantom-Cassandra插入/更新行为

时间:2016-05-22 11:07:59

标签: scala cassandra phantom-dsl

我正在尝试使用相同的数据链接两个表,例如: http://outworkers.com/blog/post/a-series-on-cassandra-part-1-getting-rid-of-the-sql-mentality

我的第二个表包含我想要查询的数据,例如:

foo (
  id text,
  time timestamp,
  a int,
  b int,
  c int,
  d int,
  PRIMARY KEY (time, id)
) WITH CLUSTERING ORDER BY (time DESC, id ASC)

所以在这里我想通过timestamp或id进行查询。 现在a,b,c,d是应该是唯一的项,即PRIMARY KEY(a,b,c,d)。为此,我创建了第一个表:

bar (
  id text,
  time timestamp,
  a int,
  b int,
  c int,
  d int,
  PRIMARY KEY (a, b, c, d)
)

问题是,在插入过程中,id和时间可能会改变,但a,b,c,d将保持不变。 现在,我希望按照博客文章中提到的一致性事项做一些事情。我面临的问题是,如果我尝试插入具有相同(a, b, c, d)的项目,则栏会愉快地更新相应的行,但是foo会创建一个新条目。如何删除foo中的旧条目或更新foo如bar ???

1 个答案:

答案 0 :(得分:2)

根据Cassandra documentation

  

UPDATE无法更新行主键字段的值

以下是幻像删除查询的示例:https://github.com/outworkers/phantom/wiki/Querying#delete-queries