2016-11-17 70 views
1

我有一個包含複合主鍵的表。 名稱,描述,ID如何通過Cassandra中的唯一ID處理搜索

PRIMARY KEY (id, name, description) 

每當搜索卡桑德拉我需要提供三個按鍵,但現在我有一個使用案例,我想刪除,更新和得到的只是基於ID。

因此,我創建了一個物化視圖,對這張表進行了重新排序,使ID先排序,這樣我就可以根據ID進行搜索。

但是,如何刪除或更新只有一個ID的記錄?

+0

每個ID有多少個唯一的名稱和說明? –

回答

2

,如果你使用的是分區鍵 3列,或者如果您使用的是複合主鍵目前尚不清楚。

如果您使用的是分區鍵 3列:

CREATE TABLE tbl (
    id uuid, 
    name text, 
    description text, 
    ... 
    PRIMARY KEY ((id, name, description)) 
); 

通知括號你需要的所有3個組成部分,以確定您的數據。因此,當您通過物化視圖中的ID查詢數據時,您還需要檢索namedescription字段,然後每個元組發出一個刪除<id, name, description>

相反,如果使用複合主鍵與ID是唯一分區鍵

CREATE TABLE tbl (
    id uuid, 
    name text, 
    description text, 
    ... 
    PRIMARY KEY (id, name, description) 
); 

通知括號,那麼你可以簡單地發出一個刪除,因爲你已經知道該分區並不需要其他任何東西。

檢查this SO帖子中有關於主鍵類型的明確說明。

另一件您應該注意的事情是物化視圖會爲您隱藏一張表格,關於數據建模的相同規則/想法也應該適用於物化視圖。

+0

是它是一個3列的複合主鍵,但如果我只用id創建表,當我創建複合表時,我只能再添加一列來搜索。 –