メインコンテンツまでスキップ

コレクションの Truncate

コレクションを Truncate すると、コレクションのスキーマ、制約、インデックスを保持したまま、すべてのエンティティが削除されます。これはエンティティを削除するよりも効率的です。現在のタイムスタンプより前に flush されたすべてのエンティティを検索やクエリから隠し、バックグラウンドで削除するためです。

📘Notes

この機能は managed collection にのみ適用されます。

概要

コレクションの Truncate は、スキーマ、制約、インデックスなどの構造定義を完全に保持しながら、コレクションからすべてのエンティティを削除する高性能な操作です。これにより、再設定やインデックスの再構築を必要とせず、コレクションはすぐに新しいデータの取り込みに使用できる状態に保たれます。

レコードを個別に処理し、大量のトランザクションログを生成する従来の削除方法とは異なり、Truncate は最適化された 2 段階のメカニズムで動作します。

  1. 即時の論理削除

    Truncate のタイムスタンプより前に挿入または削除されたすべてのエンティティは即座に flush され、検索やクエリから隠されるため、以降の操作からは実質的に見えなくなります。

  2. 効率的な物理クリーンアップ

    システムは影響を受けたすべてのデータセグメントをバックグラウンドでガベージコレクションし、エンティティごとの削除処理によるオーバーヘッドを排除します。

Truncate は、テスト環境の更新、パイプラインステージのクリーンアップ、定期的なデータライフサイクル管理など、データセット全体の迅速なリセットが必要で、性能とリソース効率が重要なユースケースに最適です。

次のコード例では、my_collection という名前のコレクションがすでに存在していることを前提としています。

python
from pymilvus import MilvusClient, DataType

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

client.truncate_collection(
collection_name="my_collection"
)
Ctrl I