Java 可以在卡桑德拉中插入大纪元时间吗?
表的架构:Java 可以在卡桑德拉中插入大纪元时间吗?,java,scala,cassandra,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, 242aa08
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
或者如何修改增加1天的现有uuid意味着[exitingDate+1.day]?您可以使用数据类型。它看起来和尝起来都像普通的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';
顺便说一句,还有一个writetime()
函数,它可以应用于任何(非PK)列值,以获得实际的列写入时间戳