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

コレクションTTLの設定

データがコレクションに挿入されると、デフォルトではそこに残り続けます。ただし、一定期間後にデータを削除またはクリーンアップしたい場合があります。このような場合、コレクションのTTL(Time-to-Live)プロパティを設定し、TTLが期限切れになったときにZilliz Cloudがデータを自動的に削除するようにできます。

概要

TTL(Time-to-Live)は、データベースで一般的に使用される概念であり、挿入または変更後の一定期間のみデータの有効性またはアクセシビリティを維持すべきケースに使用されます。その後、データは自動的に削除されます。

例えば、毎日データをインジェストするが、過去14日間のレコードのみを保存する必要がある場合、コレクションのTTLを14 × 24 × 3600 = 1209600秒に設定することで、Zilliz Cloudがそれより古いすべてのデータを自動的に削除するように構成できます。これにより、コレクション内には直近14日分のデータのみが保持されることが保証されます。

📘注意

期限切れのエンティティは検索またはクエリ結果には表示されません。ただし、データは後続のデータコンパクションが行われるまで(24時間以内に行われる予定)ストレージに残ることがあります。

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

削除プロセスは非同期であるため、指定されたTTLの経過後に検索結果からデータが正確に削除されるとは限りません。代わりに、ごみ集め(GC)およびコンパクションプロセスが不定期に行われるため、削除には遅延が生じることがあります。

TTLの設定

TTLプロパティは以下のタイミングで設定できます:

コレクション作成時のTTL設定

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

from pymilvus import MilvusClient

# TTL付き
client.create_collection(
collection_name="my_collection",
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"]
)