2014-05-23 11 views
12

Ist es möglich, eine Tabelle zu erstellen, die eine Standard-TTL für alle Zeilen hat, die eingefügt werden, oder müssen Sie immer die TTL festlegen, wenn Sie ein Einfügen/aktualisieren ?Create Cassandra-Tabelle mit CQL3 mit Standard-TTL

kann nichts dazu in der Dokumentation:

http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/create_table_r.html

+0

Ziklag, das die Information über tatsächlich in einer anderen Seite "Attributtabelle" die Seite als default_time_to_live (meinen Link sehen in der Antwort unten). Prost. – reggoodwin

Antwort

22

Ja es möglich ist, TTL für die gesamte Spalte Familie einzustellen.

CREATE TABLE test_table (
    # your table definition # 
) WITH default_time_to_live = 10; 

Inserted rows then disappear after 10 seconds. 

Ich glaube, die Arbeit für sie hier getan wurde:

https://issues.apache.org/jira/browse/CASSANDRA-3974

hier ein docs Referenz ist von Patrick McFadin von DataStax (@PatrickMcFadin) gesendet:

http://docs.datastax.com/en/cql/3.1/cql/cql_reference/tabProp.html

Prost,

+0

Datastax-Verbindung ist 404. –

+1

@SamB. Link repariert – Aaron

+0

Frage zu dieser Antwort: Im Dokument heißt es: Sie können effektiv alle Spalten-TTLs in einer Tabelle löschen, indem Sie default_time_to_live auf Null setzen. Bedeutet dies, dass eine Spalte statt einer Zeile gelöscht wird? –

0

Fr om Cassandra doc:

Sie können einen Standard-TTL für eine ganze Tabelle durch die Tabellen default_time_to_live Eigenschaft festlegen. Wenn Sie versuchen, eine TTL für eine bestimmte -Spalte festzulegen, die länger als die in der Tabelle TTL definierte Zeit ist, gibt Apache Cassandra ™ einen Fehler zurück.

See: https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_t.html

Und hier für allgemeine Zwecke über TTL: https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_c.html