Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
如何在Apache Cassandra中操作时间戳列_Cassandra_Cql_Cql3 - Fatal编程技术网

如何在Apache Cassandra中操作时间戳列

如何在Apache Cassandra中操作时间戳列,cassandra,cql,cql3,Cassandra,Cql,Cql3,我有一个带有timestamp列的表,我想处理该列的值。例如,我需要做一些事情: updatemytable SET datetimecolumn=datetimecolumn+10min 在Apache Cassandra中是如何实现的 更新:答案似乎是“你不能”。显然,我们所能得到的答案是最接近的。先读后写是卡桑德拉的反模式。您已经在客户端操纵了该值,并像往常一样进行了更新 换句话说:您必须搜索(选择)该值,进行更改(增量为10分钟)并在cassandra更新新值 先读后写在cassandr

我有一个带有
timestamp
列的表,我想处理该列的值。例如,我需要做一些事情:

updatemytable SET datetimecolumn=datetimecolumn+10min

在Apache Cassandra中是如何实现的

更新:答案似乎是“你不能”。显然,我们所能得到的答案是最接近的。

先读后写是卡桑德拉的反模式。您已经在客户端操纵了该值,并像往常一样进行了更新

换句话说:您必须搜索(选择)该值,进行更改(增量为10分钟)并在cassandra更新新值

先读后写在cassandra中是一种反模式。您已经在客户端操作了该值,并按照常规更新


换句话说:您必须搜索(选择)该值,进行更改(增量为10分钟)并在cassandra更新新值

只有当数据类型为counter时,才可以查询类似的数据。

使用计数器:

计数器是一个特殊的列,用于存储增量更改的数字。例如,您可以使用计数器列来计算查看页面的次数

仅在专用表中定义计数器,并使用计数器数据类型。不能索引、删除或重新添加计数器列。表中的所有非计数器列必须定义为主键的一部分

例如:

CREATE TABLE mytable (
   pk1 int PRIMARY KEY,
   datetimecolumn counter
);
这里必须使用datetimecolumn的毫秒值。
第一次,您必须使用更新查询,时间以毫秒为单位,比如1487686182403

UPDATE mytable SET datetimecolumn = datetimecolumn + 1487686182403 where pk1 = 1
现在,pk=1的mytable包含datetimecolumn=1487686182403值

如果要将datetimecolumn增加10分钟(600000毫秒)


来源:

只有在数据类型为counter时,才可以查询类似的数据。

使用计数器:

计数器是一个特殊的列,用于存储增量更改的数字。例如,您可以使用计数器列来计算查看页面的次数

仅在专用表中定义计数器,并使用计数器数据类型。不能索引、删除或重新添加计数器列。表中的所有非计数器列必须定义为主键的一部分

例如:

CREATE TABLE mytable (
   pk1 int PRIMARY KEY,
   datetimecolumn counter
);
这里必须使用datetimecolumn的毫秒值。
第一次,您必须使用更新查询,时间以毫秒为单位,比如1487686182403

UPDATE mytable SET datetimecolumn = datetimecolumn + 1487686182403 where pk1 = 1
现在,pk=1的mytable包含datetimecolumn=1487686182403值

如果要将datetimecolumn增加10分钟(600000毫秒)


来源:

我不确定我是否理解你的答案。你能详细说明一下吗?我不知道我是否理解你的答案。你能详细说明一下吗。