メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

コレクションTTLを設定する

データがコレクションに挿入されると、デフォルトでそこに残ります。ただし、一部のシナリオでは、一定期間後にデータを削除またはクリーンアップする必要がある場合があります。そのような場合、コレクションのTTLプロパティを構成して、TTLが期限切れになるとMilvusが自動的にデータを削除するようにすることができます。

概要について

Time-to-Live(TTL)は、データが挿入や変更後に一定期間のみ有効またはアクセス可能である必要がある場合に、データベースで一般的に使用されます。その後、データは自動的に削除されます。

例えば、毎日データを取り込み、14日間だけレコードを保持する必要がある場合、コレクションのTTLを14×24×3600=1209600秒に設定することで、それより古いデータを自動的に削除するようにMilvusを設定できます。これにより、最新の14日間分のデータのみがコレクションに残ります。

MilvusコレクションのTTLプロパティは、秒単位の整数で指定されます。設定されると、TTLを超えるデータは自動的にコレクションから削除されます。

削除過程が非同期であるため、指定されたTTLが経過した後にデータが検索結果から正確に削除されない場合があります。代わりに、非決定的な間隔で発生するガベージコレクション(GC)および圧縮プロセスに依存するため、遅延が発生する可能性があります。

TTLを設定

TTLプロパティを設定できます

コレクション作成時にTTLを設定する

次のコードスニペットは、コレクションを作成するときにTTLプロパティを設定する方法を示しています。

from pymilvus import MilvusClient

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

既存のコレクションにTTLを設定する

次のコードスニペットは、既存のコレクションのTTLプロパティを変更する方法を示しています。

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

ドロップTTL設定

コレクション内のデータを無期限に保持する場合は、そのコレクションからTTL設定を削除することができます。

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