跳到主要内容
版本:v2.5.x

设置 Collection TTL

数据插入 Collection 后,默认情况下会保留在其中。不过,在某些情况下,你可能希望在一段时间后删除或清理数据。在这种情况下,你可以配置 Collection 的 "生存时间"(TTL)属性,这样一旦 TTL 过期,Milvus 就会自动删除数据。

概览

在数据库中,"有效时间"(TTL)通常用于数据插入或修改后只能保持有效或可访问一段时间的情况。然后,数据会被自动删除。

例如,如果你每天采集数据,但只需要保留 14 天的记录,你可以通过将 Collection 的 TTL 设置为14 × 24 × 3600 = 1209600秒,配置 Milvus 自动移除任何比这更早的数据。这样就能确保 Collection 中只保留最近 14 天的数据。

Milvus Collection 中的 TTL 属性指定为以秒为单位的整数。一旦设置,任何超过 TTL 的数据都将自动从 Collection 中删除。

由于删除过程是异步的,因此一旦指定的 TTL 超过,数据可能不会准确地从搜索结果中删除。相反,可能会有延迟,因为删除取决于垃圾 Collection (GC) 和压缩过程,而这两个过程会以非确定的时间间隔发生。

设置 TTL

您可以在以下情况下设置 TTL 属性

创建 Collection 时设置 TTL

以下代码片段演示了如何在创建 Collection 时设置 TTL 属性。

from pymilvus import MilvusClient

# With TTL
client.create_collection(
collection_name="my_collection",
schema=schema,
properties={
"collection.ttl.seconds": 1209600
}
)

为现有 Collection 设置 TTL

以下代码片段演示了如何更改现有 Collection 中的 TTL 属性。

client.alter_collection_properties(
collection_name="my_collection",
properties={"collection.ttl.seconds": 1209600}
)

删除 TTL 设置

如果您决定无限期地保留某个 Collection 中的数据,您只需删除该 Collection 中的 TTL 设置即可。

client.drop_collection_properties(
collection_name="my_collection",
property_keys=["collection.ttl.seconds"]
)