是否可以在cassandra中插入纪元时间?

时间:2015-12-16 10:59:06

标签: java scala cassandra

表的

架构:

CREATE TABLE student(
name text,
id int,
class int,
logintime timeuuid,
subject text
PRIMARY KEY ((cust_sub_id, group_id), level, eventtime));

在学生表中插入数据时:

INSERT INTO student(name, id, class, logintime, subject) VALUES ( 'xyz', 10, 12, 242aa080-9e6f-11e5-b62b-903c9927ffc2, 'maths');

工作正常。 但是可以插入epochtime / datetime而不是uuid并在cassandra表中自动保存为uuid格式吗?

类似的东西:

INSERT INTO student(name, id, class, logintime, subject) VALUES ( 'xyz', 10, 12, 1449663555, 'maths');

如果不可能那么如何在scala中将epochtime转换为uuid?

或者如何修改现有的uuid增加1天意味着[exitingDate + 1.day] ??

1 个答案:

答案 0 :(得分:2)

您可以使用timeuuid数据类型。它的外观和味道与常规UUID相似,但由两部分组成:时间和节点特定的随机数据。它可以像:

一样使用
INSERT INTO student(name, id, class, logintime, subject) VALUES ( 'xyz', 10, 12, now(), 'maths');

Yuo可以使用dateOf()函数提取TimeUUID的时间部分:

SELECT dateOf(logintime) from student where name='xyz';

BTW还有writetime()函数可以应用于任何(非PK)列值以获得实际的列写入时间戳。