表行为的cassandra TTL

表行为的cassandra TTL,cassandra,Cassandra,假设我在second-1插入一列,在second-2插入另一列。表的默认TTL设置为10秒,例如: 问题1:数据1和数据2将在10秒后删除,还是数据1将在10秒后删除,数据2将在11秒后删除(如插入秒-2) 问题2:是否可以在表格级别设置TTL,使表格中的每个条目都以FIFO方式基于TTL过期?(data-1将在second-10过期,data-2将在second-11过期),为每个数据点插入时是否未指定TTL?(应该能够在表格级别指定?) 谢谢你的帮助:) 编辑: 网页上写着 设置表的TTL

假设我在second-1插入一列,在second-2插入另一列。表的默认TTL设置为10秒,例如:

问题1:数据1和数据2将在10秒后删除,还是数据1将在10秒后删除,数据2将在11秒后删除(如插入秒-2)

问题2:是否可以在表格级别设置TTL,使表格中的每个条目都以FIFO方式基于TTL过期?(data-1将在second-10过期,data-2将在second-11过期),为每个数据点插入时是否未指定TTL?(应该能够在表格级别指定?)

谢谢你的帮助:)

编辑

网页上写着

设置表的TTL

CQL表定义支持默认的\u time \u to \u live属性, 它将特定的TTL应用于表中的每一列。之后 默认\u时间\u到\u实时TTL值已超过,Cassandra墓碑 整张桌子。使用将此默认TTL应用于CQL中的表 创建表或更改表


他们说“整张桌子”,这让我很困惑。

问题1回答:数据1将在10秒后删除,数据2将在11秒后删除


问题2答案:Cassandra使用表的ttl插入每一列,因此每一列都将在插入时间+ttl时过期。

表级别的ttl与值级别的ttl毫无不同:它指定了每一行的默认ttl时间

TTL指定在多少秒后这些值必须被视为过时并因此被删除。参考点是插入/更新时间戳,因此如果在09:53:01插入/更新行:

  • TTL为10秒,将于09:53:11过期
  • TTL为15秒,将于09:53:16过期
  • TTL为0秒,它将永远不会过期
您可以通过在查询中指定
使用TTL X
子句来覆盖默认的TTL时间,其中X是新的TTL值


请注意,明智地使用TTL而不是可能会导致墓碑问题。还要注意的是,TTL的使用有一些怪癖。查看最近的答案以了解更多细节。

短语“整张表将被删除”也让我感到困惑,我还没有看到任何人解释他们的意思,因为这似乎意味着它不仅仅是新行的默认TTL值。