架构:
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] ??
答案 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)列值以获得实际的列写入时间戳。