使用带有默认TTL的cql3创建Cassandra表

时间:2014-05-23 10:24:09

标签: cassandra cql3 ttl

是否可以为插入其中的所有行创建一个具有默认TTL的表,或者在进行插入/更新时是否必须始终记住设置TTL?

在文档中看不到任何内容:

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

3 个答案:

答案 0 :(得分:26)

是的,可以为整个列族设置TTL。

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

Inserted rows then disappear after 10 seconds.

我相信这项工作是在这里完成的:

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

以下是DataStax(@PatrickMcFadin)的Patrick McFadin发送的文档参考:

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

干杯,

答案 1 :(得分:0)

来自Cassandra doc:

  

您可以通过设置表来为整个表设置默认TTL   default_time_to_live属性。如果您尝试为特定设置TTL   比表TTL,Apache定义的时间长的列   Cassandra™返回错误。

请参阅:https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_t.html

这里有关于TTL的一般目的:https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_c.html

答案 2 :(得分:0)

您可以在表上或在INSERT / UPDATE期间设置TTL。创建表时,可以定义或设置default_time_to_live,也可以在以后使用默认TTL值创建表后进行更新。如果要设置行级别TTL,则可以在插入行或更新任何行时进行设置。您可以参考以下有关此问题的要点:- https://www.geeksforgeeks.org/time-to-live-ttl-for-a-column-in-cassandra/https://docs.datastax.com/en/cql-oss/3.3/cql/cql_reference/cqlCreateTable.html#tabProp__cqlTableDefaultTTL