2013-06-11 10 views

Antwort

3

Leider, ich bin ziemlich sicher, dass die Antwort ist, dass es nicht möglich, als von Cassandra 1.2 und CQL3 ist. Sie können einzelne Elemente einer Sammlung nicht abfragen. Wie this blog entry sagt, "Sie können nur eine Sammlung in ihrer Gesamtheit abrufen". Ich würde allerdings sehr gerne die Möglichkeit haben, auch nach Auflistungselementen zu suchen.

Sie können die TTL weiterhin für einzelne Elemente in einer Sammlung festlegen. Ich nehme an, wenn Sie sicher sein wollten, dass ein TTL Wert für Ihre Sammlungselemente ist, könnten Sie die gesamte Sammlung lesen und dann die Sammlung (die gesamte Sache oder nur einige ausgewählte Elemente) mit Ihrer gewünschten TTL aktualisieren. Oder wenn Sie die TTL für einzelne Daten unbedingt kennen müssen, müssen Sie möglicherweise nur Ihr Schema aus den Sammlungen in gute alte dynamische Spalten ändern, für die die TTL-Abfrage definitiv funktioniert.

Oder eine dritte Möglichkeit könnte sein, dass Sie Ihrem Schema eine weitere Spalte hinzufügen, die die TTL Ihrer Sammlung enthält. Zum Beispiel:

CREATE TABLE test (
    key text PRIMARY KEY, 
    data map<text, text>, 
    data_ttl text 
) WITH ... 

Sie könnten dann den Überblick über die TTL der gesamten Karte Spalte ‚Daten‘ durch immer Spalte Aktualisierung ‚data_ttl‘, wenn Sie aktualisieren ‚Daten‘. Dann können Sie abfragen ‚data_ttl‘ wie jede andere Spalte:

SELECT ttl(data_ttl) FROM test; 

Ich weiß, keine dieser Lösungen sind perfekt ... Ich versuche immer noch herauszufinden, was für mich am besten funktioniert, auch.

Verwandte Themen