覆盖 TTL Cassandra

M. *_*thi 3 cql ttl cassandra

我正在为我的应用程序使用 Cassandra 数据库,并且为每个请求设置 TTL。出于测试目的,我使用另一个数据库(相同的架构,但在本地),我愿意保留数据,我想知道是否有办法覆盖 ttl,我不知道,通过在创建时将其设置为默认值桌子或类似的东西。

谢谢。

und*_*ble 5

为特定列设置 TTL

使用 CQL 设置数据的 TTL。

要更改特定列的 TTL,您必须使用新的 TTL 重新插入数据。Cassandra 使用新的 TTL 更新插入列,并用旧的 TTL 替换旧值(如果存在)。

设置表的 TTL

CQL 表定义支持 default_time_to_live 属性,该属性将特定的 TTL 应用于表中的每一列。超过 default_time_to_live TTL 值后,Cassandra 会逻辑删除整个表。使用 CREATE TABLE 或 ALTER TABLE 将此默认 TTL 应用于 CQL 中的表。

如果您的表在本地环境中的 TTL 值不等于 0,请使用

ALTER TABLE table_name
  WITH  default_time_to_live= 0
Run Code Online (Sandbox Code Playgroud)

这将更改表级别 TTL。

如果设置了列级别 TTL,请更改代码以插入具有 0 或更高 TTL 的记录。

细节