Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取CQL/Cassandra中集合项的时间戳_Cassandra_Cql - Fatal编程技术网

获取CQL/Cassandra中集合项的时间戳

获取CQL/Cassandra中集合项的时间戳,cassandra,cql,Cassandra,Cql,我知道我可以使用writetime()获取列的内部时间戳,但是否可以获取集合(如列表)中特定项的时间戳?我的理解是,集合项在内部存储为单独的列,因此它们似乎应该具有单独的时间戳。集合中的单独列确实具有单独的时间戳。您可以通过直接使用sstable2json函数检查SSTable看到这一点 CREATE TABLE users ( user_id text, emails set<text>, first_name text, last_name text, PRIMARY KEY (

我知道我可以使用
writetime()
获取列的内部时间戳,但是否可以获取集合(如列表)中特定项的时间戳?我的理解是,集合项在内部存储为单独的列,因此它们似乎应该具有单独的时间戳。

集合中的单独列确实具有单独的时间戳。您可以通过直接使用sstable2json函数检查SSTable看到这一点

CREATE TABLE users (
user_id text,
emails set<text>,
first_name text,
last_name text,
PRIMARY KEY ((user_id))
)

INSERT INTO users (user_id, first_name, last_name, emails)
   VALUES('frodo', 'Frodo', 'Baggins', {'f@baggins.com', 'baggins@gmail.com'});

UPDATE users
   SET emails = emails + {'fb@friendsofmordor.org'} WHERE user_id = 'frodo';
您可以在电子邮件中看到与时间戳1444170199819000、1444170199819000和1444170213268000相对应的3个条目


然而,似乎不可能通过CQL返回这些。您将无法从集合中返回单个列,但返回时间戳以及集合中所有项的值是合理的,但是我找不到任何关于如何执行此操作的文档,因此它看起来不受支持

集合元素有自己的时间戳,但使用CQL无法获取这些时间戳。请参阅相应的Jira票证以支持此功能:

[
{"key": "66726f646f","columns": [["","",1444170199819000],
["emails","emails:!",1444170199818999,"t",1444170199], 
["emails:62616767696e7340676d61696c2e636f6d","",1444170199819000],  
["emails:664062616767696e732e636f6d","",1444170199819000], 
["emails:666240667269656e64736f666d6f72646f722e6f7267","",1444170213268000], 
["first_name","Frodo",1444170199819000], 
["last_name","Baggins",1444170199819000]]}
]