2016-03-22 5 views
1

Wie kann jedes Element einer Sammlung ablaufen, indem eine individuelle TTL-Eigenschaft (Time-to-Live) in Cassandra festgelegt wird?
Wie kann jedes Element einer Sammlung ablaufen, indem eine individuelle TTL-Eigenschaft (Time-to-Live) in Cassandra festgelegt wird?

Die Dokumentation ist hier, aber ich kann kein Beispiel finden. (https://docs.datastax.com/en/cql/3.3/cql/cql_using/useExpire.html)

+0

was hast du bisher gemacht? –

+0

Hi @ TungD.Nguyen, ich baue eine Cassandra-Datenbank für persistente Kafka-Ereignisse (http://kafka.apache.org/) und mache dann etwas maschinelles Lernen mit den Daten in Cassandra. ** Ich bin immer noch im Entwicklerstadium **, in diesen Tagen werde ich diese Lösung mit ** mehr als 4 Millionen ** Einträgen testen und feststellen, ob es ein Problem gibt. –

Antwort

1


Wenn Sie verschiedene TTL in einer gleichen Spalte Sammlung (set, Liste, Karte) von Cassandra haben wollen.

Machen Sie es wie in diesem Beispiel:

ist ein Tisch -> Tabellenname
whih eine Spalte (col1) Primärschlüssel Texttyp
A-Säule (col2) vom Typ < lang>

UPDATE tableName USING TTL 30 SET col2=col2+{11} WHERE col1=-10; 
UPDATE tableName USING TTL 88 SET col2=col2+{22} WHERE col1=-10; 
gesetzt

Im Beispiel werde ich auf Werte zu der Menge, {11} mit TTL = 30 und {22} mit TTL = 88 aufsteigen.
Wenn ein Element die TTL überschreitet, wird es automatisch gelöscht.
Wenn alle Elemente in der Menge die TTL überschreiten und die Menge leer ist, wird auch die Zeile gelöscht.