Cassandra:使用一个查询的输出作为另一个查询的输入

时间:2017-01-23 06:47:08

标签: cassandra nosql

我有两个表,一个是用户,另一个是expired_users。

用户列 - >身份证,姓名,年龄 expired_users列 - > id,name

我想执行以下查询。

从id为的用户中删除(从expired_users中选择id);

此查询适用于SQL相关数据库。我想在cassandra中找到解决这个问题的解决方案。

PS:我不想在表格中添加任何额外的列。

2 个答案:

答案 0 :(得分:2)

在设计cassandra数据模型时,我们不能完全像RDBMS那样思考。 像这样的设计 -

baselineOffset

将用户标记为已过期 - 只需再次插入相同的行

create table users (
id int,
name text,
age int,
expired boolean static,
primary key (id,name)
);

您不必更新或删除该行,只需再次插入,之前的列值就会被覆盖。

答案 1 :(得分:1)

你想要的是使用join作为你的delete语句的过滤器,而这不是为Cassandra模型构建的。

AFAIK无法使用cql执行此操作。如果要在不更改架构的情况下执行此操作,请使用任何具有Cassandra驱动程序的语言运行外部脚本。