16

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

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

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

4

3 回答 3

31

是的,可以为整个列族设置 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

干杯,

于 2014-05-23T11:48:43.430 回答
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

于 2020-04-18T05:57:26.320 回答
0

来自 Cassandra 文档:

您可以通过设置表的 default_time_to_live 属性为整个表设置默认 TTL。如果您尝试为特定列设置长于表 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

于 2018-03-09T13:40:34.763 回答