如何在卡桑德拉最好地存储时间戳或日期



我需要将最后一个日期存储在卡桑德拉(Cassandra),并想知道最好的方法是什么,因为它只是一列和一行。请建议。

您可以创建一个具有bucket作为分区密钥的表。这样,使用恒定的存储桶ID为0,您只需INSERT操作即可更新该值。这在Cassandra中称为" Upsert"。

 CREATE TABLE last_push_date (
    bucket INT,
    last_push_date DATE,
    PRIMARY KEY (bucket)
);

要插入和更新相同的last_push_date值,您可以使用Bucket 0:

插入命令
INSERT INTO last_push_date (bucket, last_push_date) VALUES (0, '2017-11-11');
INSERT INTO last_push_date (bucket, last_push_date) VALUES (0, '2017-11-13');

选择last_push_date将返回最后插入的结果:

 SELECT * FROM last_push_date WHERE bucket = 0;
 bucket | last_push_date
--------+----------------
      0 |     2017-11-13

如果您想拥有另一个last_push_date,只需使用另一个水桶ID。

有点不清楚您真正要的是什么...但是我会拍摄它。

我认为您已经回答了您的问题 - 只有一列和一排,这对Cassandra的运作方式不会产生任何真正的影响。根据我的经验,没有任何最佳的特定方式存储这种信息 - Cassandra是为了快速存储数据并具有处理一致性和复制的内部方式。

最新更新