Python 是否可以创建一个基于特定时间点保证为幂等的timeuuid?
我正在处理为基于分布式应用程序的一系列对象创建唯一ID的问题,我想利用UUID。我知道版本1的uuid是基于时间的,我想知道,如果给定一个固定的时间点,是否有可能创建一个保证是幂等的uuid?一个幂等的时间uuid?Python 是否可以创建一个基于特定时间点保证为幂等的timeuuid?,python,cassandra,cql3,Python,Cassandra,Cql3,我正在处理为基于分布式应用程序的一系列对象创建唯一ID的问题,我想利用UUID。我知道版本1的uuid是基于时间的,我想知道,如果给定一个固定的时间点,是否有可能创建一个保证是幂等的uuid?一个幂等的时间uuid?mintimeuuid()函数可能会在这里帮助您。以这个简单的表定义为例,它使用timeuuid作为集群键: CREATE TABLE stackoverflow2.timeuuids ( bucket text, value timeuuid, PRIMAR
mintimeuuid()
函数可能会在这里帮助您。以这个简单的表定义为例,它使用timeuuid
作为集群键:
CREATE TABLE stackoverflow2.timeuuids (
bucket text,
value timeuuid,
PRIMARY KEY (bucket, value));
将带有时间戳值的行插入(text)timebucket
,并使用与mintimeuuid()函数相同的时间戳值。多次运行相同的插入:
aploetz@cqlsh:stackoverflow2> INSERT INTO timeuuids (bucket, value) VALUES ('2015-05-18 09:31',mintimeuuid('2015-05-18 09:31'));
aploetz@cqlsh:stackoverflow2> INSERT INTO timeuuids (bucket, value) VALUES ('2015-05-18 09:31',mintimeuuid('2015-05-18 09:31'));
aploetz@cqlsh:stackoverflow2> INSERT INTO timeuuids (bucket, value) VALUES ('2015-05-18 09:31',mintimeuuid('2015-05-18 09:31'));
aploetz@cqlsh:stackoverflow2> INSERT INTO timeuuids (bucket, value) VALUES ('2015-05-18 09:31',mintimeuuid('2015-05-18 09:31'));
aploetz@cqlsh:stackoverflow2> INSERT INTO timeuuids (bucket, value) VALUES ('2015-05-18 09:31',mintimeuuid('2015-05-18 09:31'));
aploetz@cqlsh:stackoverflow2> INSERT INTO timeuuids (bucket, value) VALUES ('2015-05-18 09:31',mintimeuuid('2015-05-18 09:31'));
aploetz@cqlsh:stackoverflow2> INSERT INTO timeuuids (bucket, value) VALUES ('2015-05-18 09:31',mintimeuuid('2015-05-18 09:31'));
并查询您的时间段:
aploetz@cqlsh:stackoverflow2> SELECT * FROM timeuuids WHERE bucket='2015-05-18 09:31';
bucket | value
------------------+--------------------------------------
2015-05-18 09:31 | 80f72a00-fd6a-11e4-8080-808080808080
(1 rows)
请注意,只返回一行。有关更多信息,请查看。请参阅;您需要提供clock_seq
,并使用相同的主机ID运行。