2017-04-21 19 views
1
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); 

我的問題是我可以使用時間UUID來可靠地聚簇我的表順序。或者我需要使用時間戳你可以「與集羣順序」與時間uuid

我最初使用時間戳字段來聚集我的意見。不過,我想盡量避免有額外的數據,並且很好奇,如果我可以用我的時間uuid來排序。

我有限的測試已經證實了這一點,但我想確保它始終有效。

+0

什麼是您的問題? –

+0

@AshrafulIslam對不起,太累了,希望更新我的帖子更清楚。感謝你接受這一點。 –

回答

1

是的,TimeUUID可靠地排序您的數據,並且它是通用唯一的。

TimeUUID(也稱爲v1 UUID)應該是機器的MAC地址和時間組件的組合。包含的MAC地址可確保該值在機器上是唯一的。

但是,如果您使用時間戳和更多用戶同時查看相同的視頻,則可以生成相同的時間戳,因此您將失去一些視圖。

注意:您應該使用標準庫生成timeuuid。防爆。 UUIDs.timeBased()或cql函數now()

+0

所以最新的uuid將永遠處於頂端,有保證嗎? –

+0

是的,video_id的最新uuid將始終是該id的頂部 –