gpt4 book ai didi

nosql - 如何从 Cassandra 的时间序列中选择最后一条记录?

转载 作者:行者123 更新时间:2023-12-02 03:38:27 25 4
gpt4 key购买 nike

我想将一些编码的“数据”存储到 cassadra 中,按时间戳进行版本控制。我的暂定架构是:

CREATE TABLE items (
item_id varchar,
timestamp timestamp,
data blob,
PRIMARY KEY (item_id, timestamp)
);

我希望能够返回项目列表,只返回每个 item_id 的最新(最高时间戳);这种模式可能吗?

最佳答案

不可能在这个表的单个 CQL 语句中表达这样的查询,所以答案是否定的。

您可以尝试创建另一个表,例如latest_items,并且只在那里存储最后的更新,所以架构将是:

CREATE TABLE latest_items (
item_id varchar,
timestamp timestamp,
data blob,
PRIMARY KEY (item_id)
);

如果您的行是按时间戳顺序插入的,那么该表自然只会包含每个项目的最新行。然后您可以运行 select * from latest_items limit 10000000;。这当然会很昂贵,因为您要获取所有行,但考虑到您实际需要所有行的要求,没有办法避免它。

第二个表涉及复制数据,但这是 Cassandra 的常见主题。您可以通过间接存储它来避免复制 blob,即作为路径或 URL 或类似的东西。

关于nosql - 如何从 Cassandra 的时间序列中选择最后一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21755049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com