gpt4 book ai didi

cassandra - 在 Cassandra 中为 map 中的元素选择 TTL

转载 作者:行者123 更新时间:2023-12-04 08:44:50 25 4
gpt4 key购买 nike

有什么方法可以使用 CQL3 在 Cassandra 中为 map 中的元素选择 TTL 值?

我试过这个,但它不起作用:

SELECT TTL (mapname['element']) FROM columnfamily

最佳答案

可悲的是,我很确定答案是从 Cassandra 1.2 和 CQL3 开始这是不可能的。您不能查询集合的单个元素。如 this blog entry说,“您只能检索整个集合”。不过,我也非常希望能够查询集合元素。

您仍然可以为集合中的单个元素设置 TTL。我想如果您想确保 TTL 是您的集合元素的某个值,您可以读取整个集合,然后使用所需的 TTL 更新集合(整个事物或仅选择的几个元素)。或者,如果您绝对需要知道单个数据的 TTL,您可能只需要将架构从集合更改回旧的动态列,TTL 查询肯定适用于这种情况。

或者,第三种可能性可能是您将另一列添加到您的架构中,以保存您的集合的 TTL。例如:

CREATE TABLE test (
key text PRIMARY KEY,
data map<text, text>,
data_ttl text
) WITH ...

然后,您可以通过在更新“数据”时始终更新“data_ttl”列来跟踪整个 map 列“数据”的 TTL。然后,您可以像查询任何其他列一样查询 'data_ttl':
SELECT ttl(data_ttl) FROM test;

我意识到这些解决方案都不是完美的......我仍在努力找出最适合我的方法,也是。

关于cassandra - 在 Cassandra 中为 map 中的元素选择 TTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17038330/

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