如何在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毫秒)
来源:我不确定我是否理解你的答案。你能详细说明一下吗?我不知道我是否理解你的答案。你能详细说明一下吗。