import com.datastax.oss.driver.api.core.uuid.Uuids
import java.time.ZonedDateTime
object Test extends App {
val timeText = "2022-01-01T00:01:01.002345Z"
val datetime = ZonedDateTime.parse(timeText)
val uuid = Uuids.endOf(datetime.toInstant.toEpochMilli)
println(uuid) // e79b51af-6a95-11ec-7f7f-7f7f7f7f7f7f
}
Cassandra试验
cqlsh:test> create table aaa (id timeuuid primary key, t text);
cqlsh:test> insert into aaa(id,t) values(e79b51af-6a95-11ec-7f7f-7f7f7f7f7f7f, 't4');
cqlsh:test> select toTimestamp(id), t from aaa;
system.totimestamp(id) | t
---------------------------------+----
2022-01-01 00:01:01.002000+0000 | t4
4条答案
按热度按时间mzillmmw1#
如果您使用的是Datastax驱动程序,则可以使用实用程序类UUIDs来生成一个
xvw2m8pv2#
Cassandra具有用于生成Timeuuid的UUIDGen。其源代码如下:
https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/utils/UUIDGen.java
wlwcrazw3#
对于cassandra cli和列名,我使用的是相同的方法
第一个
更新
主要取决于行键,如果rowKey是
userId
或其他值,则不可能在毫秒内提交重复记录,但如果您认为可以重复,则使用j9per5c44#
这是为cassandra 4.x版本工作
首先,在
build.sbt
中导入库这些例子
Cassandra试验