2015-04-15 5 views
5

Ich bin sehr neu in Cassandra, also könnte es wie eine Anfängerfrage klingen. Ich führe cqlsh 5.0.1 | Cassandra 2.1.4 auf lokaler.CQL - Datensätze nach ID und spätester Zeitstempel abrufen

Ich habe eine Tabelle wie folgt:

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

... und die Aufzeichnungen sind:

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 

Wie kann ich wählen Sie alle Datensätze mit eindeutigen IDs und zuletzt geändert Zeitstempel. das Ergebnis sein sollte:

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 

Antwort

4

Ihre aktuelle Struktur gegeben, werden Sie nicht in der Lage sein, beiseite alle anderen Spalten auswählen aus id mit einer DISTINCT Abfrage. Sie können mit nur id als PK eine weitere Abfragetabelle erstellen, dann eine grundlegende SELECT auf das laufen (es immer das Datum der letzten Änderung halten sollte)

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. 

Sie finden diese Tabelle aktualisieren müssen, wie Sie den Master aktualisieren auch.

+0

vielen Dank für Ihre Antwort. Also, wenn ich meine Tabelle ändern wie TABLE Master-Datei erstellen ( id UUID, Schöpfung Zeitstempel, event_type Text, Name Text, PRIMARY KEY (id, Schöpfung) ); – dgupta

+0

Bitte ignorieren letzten Kommentar ... hier ist es .. ist, wenn ich meine Tabelle ändern die neueste Zeit Eintrag speichern wie CREATE TABLE-Master ( id UUID, Schöpfung Zeitstempel, Zeitstempel Lastupdated statisch, event_type Text, Name Text, PRIMARY KEY (ID, Erstellung) ); ...... Wie ich den neuesten Eintrag abrufen? Kann ich sagen, wo ID = "ABC" und Erstellung = lastupdated.Ich habe versucht, aber funktioniert nicht.Es gibt mir Zeile 1: 219 keine praktikable Alternative am Input ";" Jede Hilfe wäre willkommen. – dgupta

+0

@tymeJV dies beantwortet die Frage nicht .. Das bedeutet, ich muss nur für diese Abfrage zu Tabellen verwalten. Gibt es einen besseren Ansatz zur Verfügung? –

Verwandte Themen