我需要将最后一个日期存储在卡桑德拉(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是为了快速存储数据并具有处理一致性和复制的内部方式。