是否可以为插入其中的所有行创建一个具有默认TTL的表,或者在进行插入/更新时是否必须始终记住设置TTL?
在文档中看不到任何内容:
http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/create_table_r.html
答案 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