2015-04-15 124 views
5

我對cassandra很新,所以它可能聽起來像一個新手問題。 我正在運行cqlsh 5.0.1 | Cassandra 2.1.4在本地。CQL - 通過id和最新時間​​戳獲取記錄

我有一個表像下面:

CREATE TABLE master (
id uuid, 
creation timestamp, 
event_type text, 
name text, 
PRIMARY KEY(id,creation) 
); 

...和記錄:

id         | creation     | event_type | name 
--------------------------------------+--------------------------+------------+------------------ 
305abd6d-34b8-4f36-96c6-9ea0c11be952 | 2015-04-15 14:01:54-0400 |  create |   test2 
305abd6d-34b8-4f36-96c6-9ea0c11be952 | 2015-04-15 14:03:03-0400 |  update |  test2 update 
7440c51c-6441-44fb-833b-6140fbe822eb | 2015-04-15 14:01:54-0400 |  create |   test3 
7440c51c-6441-44fb-833b-6140fbe822eb | 2015-04-15 14:03:44-0400 |  update |  test3 update 
7440c51c-6441-44fb-833b-6140fbe822eb | 2015-04-15 14:04:34-0400 |  update | test3 2nd update 

bf42a120-dec1-47d8-bde2-c0d76f1c93a5 | 2015-04-15 14:01:54-0400 |  create |   test1 

我如何可以選擇所有具有獨特的ID和最後修改的時間戳記錄。 結果應該是這樣的:

305abd6d-34b8-4f36-96c6-9ea0c11be952 | 2015-04-15 14:03:03-0400 |  update |  test2 update 
7440c51c-6441-44fb-833b-6140fbe822eb | 2015-04-15 14:04:34-0400 |  update | test3 2nd update 
bf42a120-dec1-47d8-bde2-c0d76f1c93a5 | 2015-04-15 14:01:54-0400 |  create |   test1 

回答

4

鑑於當前的結構,你將無法從idDISTINCT查詢選擇任何其他列備用。您可以創建另一個查詢表只作爲id的PK,然後運行一個基本SELECT(它應該一直保留上次修改日期)

CREATE TABLE querytable (
    id uuid, 
    creation timestamp, 
    event_type text, 
    name text, 
    PRIMARY KEY(id) 
); 

SELECT * from querytable --should only contain unique ID's and the last updated creation date. 

你必須爲你更新主更新該表以及。

+0

非常感謝您的回覆。所以,如果我修改我的表像CREATE TABLE主( ID UUID, 創建時間戳, EVENT_TYPE文本, 名文字, PRIMARY KEY(ID,創建) ); – dgupta

+0

請忽略最後的評論...這裏是..如果我修改我的表保存像CREATE TABLE主( ID UUID, 創建時間戳,LASTUPDATED時間戳靜, EVENT_TYPE文本, 名文字, 最新的時間條目主鍵(編號,創建) ); ......我怎麼檢索最新的條目?我可以說,其中id =「ABC」和創造= lastupdated.I試過,但沒有work.It給我第1行: 219在輸入時沒有可行的選擇';'任何幫助,將不勝感激。 – dgupta

+0

@tymeJV這不會回答這個問題..這意味着我只能爲了查詢而管理表。是否有更好的方法可用? –

相關問題