假设我有一个具有以下架构的列族:
CREATE TABLE users ( user_id timeuuid, name varchar, last_name varchar, children list, phone_numbers map, PRIMARY KEY(user_id) );
然后我在该 CF 中插入一行“USING TTL 60000”。当我想验证这些列中是否仍有 TTL 设置时,我收到错误:“无法在集合上使用选择函数 ttl”。
我的问题是:如何获取定义为集合的列元素的 TTL?
干杯!
最佳答案
我重现了你的问题——自然得到了完全相同的结果。问题在于,(1) 集合中的 TTL 是逐元素的(集合中的每个条目一个 TTL),并且 (2) 我发现无法从 map 或列表中获取条目。 当然,我可以删除一个元素——但选择它或其 TTL 是不可能的。即使 Datastax 的 CQL 驱动程序 v2 也没有为此提供元数据。 所以你可以为此改变你的数据结构。如果这“只是”出于测试目的,您必须相信 Cassandra 做得足够好。
关于cql3 - 检查 Cassandra 中收集列的当前 TTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22201000/