【问题标题】:Can you "WITH CLUSTERING ORDER BY" with a time uuid你能用时间 uuid 来“WITH CLUSTERING ORDER BY”吗
【发布时间】:2017-04-21 05:43:10
【问题描述】:
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 排序。

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

【问题讨论】:

  • 你的问题是什么?
  • @AshrafulIslam 对不起,太累了,更新我的帖子希望它更清楚。谢谢你接听。

标签: cassandra uuid cql


【解决方案1】:

是的,TimeUUID 可以可靠地对您的数据进行排序,并且它是通用唯一的。

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

但如果您使用时间戳和更多用户同时观看同一视频,则可能会生成相同的时间戳,因此您将失去部分观看次数。

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

【讨论】:

  • 所以最新的 uuid 将始终在顶部,保证吗?
  • 是的,video_id 的最新 uuid 将始终是该 id 的顶部
猜你喜欢
  • 1970-01-01
  • 2015-01-07
  • 2013-10-11
  • 2021-05-11
  • 1970-01-01
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多