无主键的cassandra排序查询(或自动更新记录)

sxissh06  于 2021-06-10  发布在  Cassandra
关注(0)|答案(0)|浏览(270)

我有一张Cassandra表格,里面有船的身份信息。它有一列:imo\ U编号、mmsi\ U编号、船名、时间戳。
我对这张table有两个要求:
我希望此表仅根据imo\ U号、mmsi\ U号和ship\ U名列保存具有上次更新记录的行。因此,如果任何新记录的值与这些列完全相同,它将被更新。我知道,我需要将这些列定义为cassandra中的主键。

create table keyspace.table (
    mmsi_number text,
    imo_number text,
    ship_name text,
    timestamp timestamp,
    primary key ((mmsi_number), imo_number, ship_name)
);

我希望能够通过mmsi作为where子句从表中加载数据,并按时间戳排序以查找最新记录,或者查找日期范围之间的记录。如我所知,cql模式将是:

create table keyspace.table (
    mmsi_number text,
    imo_number text,
    ship_name text,
    timestamp timestamp,
    primary key ((mmsi_number), timestamp, imo_number, ship_name)
) with clustering order by (timestamp desc);

问题是,当我使用第二个模式时,我的第一个需求将无法满足。因为每个新记录都有不同的时间戳,所以它将被插入而不是更新。
我如何满足上述要求?或者我做错了什么?谢谢你的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题