2015-04-24 82 views
5

我試圖找到一種方法來查詢cassandra數據庫,但我是新來的,我不知道如何。如何在卡桑德拉投票?

可以說我有一個表「用戶」像這樣

-> users 
    -> user_name 
    -> gender 
    -> state 

,我想要做的輪詢不斷地讓我知道,如果一個新用戶加入到表中。我怎樣才能做到這一點?

回答

1

關係數據庫中的標準方法涉及到做一個SELECT,按照一些與時間相關的ID降序排序,這樣最新的一行總是會首先返回,因此您可以看到是否與最後一個「最新行」並確定變化 - 在cassandra中,這是行不通的,因爲如果沒有WHERE子句,結果將按分區的標記進行排序,該標記(幾乎可以肯定)是隨機的。

然後,解決方案是創建一個具有分區的表,其中用戶在給定分區內進行排序。例如:

CREATE TABLE user_buckets (
    bucket text, 
    user_timestamp timeuuid, 
    user_username text, 
    PRIMARY KEY(bucket, user_timestamp) 
) WITH CLUSTERING ORDER BY (user_timestamp DESC); 

在這種情況下,你會寫到用戶表和user_buckets表兩種,用「桶」被一些合理的(如日期(YYYY) - 其中每個分區包含所有用戶在當年或日期(YYYYMMDD)註冊 - 每個分區包含當天註冊的所有用戶),然後使用SELECT ... FROM user_buckets WHERE bucket =(current-bucket)AND user_timestamp>(last timestamp you'已經看到)。