你可以"通过聚集命令"与时间uuid

时间:2017-04-21 05:43:11

标签: cassandra uuid cql

CREATE TABLE IF NOT EXISTS .views (
    uuid timeuuid,
    country text,
    ip inet,
    region text,
    city text,
    lat text,
    long text,
    metro text,
    zip text,
    video_id int,
    date_created timestamp,
    PRIMARY KEY(video_id, uuid)
) WITH CLUSTERING ORDER BY (uuid DESC);

我的问题是我可以使用Time UUID来按表格可靠地聚类。或者我需要使用时间戳

我最初使用时间戳字段来聚类我的视图。但是我想尽量避免使用额外的数据而且我很好奇,如果我可以按照我的时间uuid排序。

到目前为止,我的有限测试证实了这一点,但我想确保它始终有效。

1 个答案:

答案 0 :(得分:1)

是的,TimeUUID可靠地订购您的数据,并且它是通用唯一的。

  

TimeUUID(也称为v1 UUID)应该是机器的MAC地址和时间组件的组合。包含的MAC地址可确保该值在整个计算机上是唯一的。

但是如果您使用时间戳和更多用户同时查看同一视频,则可以生成相同的时间戳,因此您将丢失一些视图。

注意:您应该使用标准库生成timeuuid。防爆。 UUIDs.timeBased()或cql函数now()