2015-04-15 18 views
5

Jestem bardzo nowy dla Kasandra, więc może to brzmieć jak pytanie początkujących. Używam cqlsh 5.0.1 | Cassandra 2.1.4 na lokalnym.CQL - pobierz rekordy według id i najnowszego znacznika czasu

Mam tabeli jak poniżej:

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

... i zapisy są:

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 

jaki sposób można zaznaczyć wszystkie rekordy z różnych identyfikatorów i ostatniej modyfikacji datownik. wynik powinien być podobny:

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 

Odpowiedz

4

Given aktualna struktura, nie będzie mógł wybrać dowolne inne kolumny oprócz id z DISTINCT zapytania. Można utworzyć inną tabelę zapytania z tylko id jako PK, a następnie uruchomić podstawową SELECT na ten temat (należy zawsze zachować daty ostatniej modyfikacji)

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. 

Musisz zaktualizować tę tabelę jako zaktualizować mistrza także.

+0

wielkie dzięki za odpowiedź. Więc jeśli mogę zmodyfikować moje tabelę jak TWORZENIE mistrza tabeli ( id uuid, tworzenie datownika, EVENT_TYPE tekstu nazwa tekstu PRIMARY KEY (id, tworzenie) ); – dgupta

+0

proszę zignorować ostatni komentarz ... tutaj jest .. jeśli mogę zmodyfikować moje tabeli zapisać ostatnią pozycję czasową jak TWORZENIE mistrza tabeli ( id uuid, tworzenie datownika, lastupdated datownika statyczne, EVENT_TYPE tekstu nazwa tekstu PRIMARY KEY (identyfikator, tworzenie) ); ...... jak mogę pobrać najnowszy wpis? Czy mogę powiedzieć, gdzie id = "ABC" i tworzenie = lastupdated.I próbował tego, ale doesnot work.It daje mi wiersz 1: 219 brak realnej alternatywy na wejściu ';' Każda pomoc będzie doceniona. – dgupta

+0

@tymeJV to nie odpowiada na pytanie .. Oznacza to, że muszę zarządzać tabelami tylko ze względu na to zapytanie. Czy istnieje lepsze podejście? –

Powiązane problemy