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

コレクションの変更

コレクションの名前を変更したり、設定を変更したりできます。このページでは、コレクションを変更する方法について説明します。

コレクションの名前変更

以下のようにしてコレクションの名前を変更できます。

from pymilvus import MilvusClient

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

client.rename_collection(
old_name="my_collection",
new_name="my_new_collection"
)

Set Collection Properties

コレクション作成後も、コレクションレベルのプロパティを変更できます。

Supported properties

Property

Description

collection.ttl.seconds

コレクションのデータを特定の期間後に削除する必要がある場合は、Time-To-Live (TTL) を秒単位で設定することを検討してください。TTL の期限が切れると、Zilliz Cloud はそのコレクションからすべてのエンティティを削除します。

削除は非同期で行われるため、削除が完了するまでは検索およびクエリが可能です。

詳細については、「Set Collection TTL」を参照してください。

mmap.enabled

メモリマッピング(mmap)により、ディスク上の大規模ファイルに直接メモリアクセスできるようになり、Zilliz Cloud はインデックスとデータをメモリおよびハードドライブの両方に格納できます。このアプローチにより、アクセス頻度に基づいたデータ配置ポリシーを最適化し、検索パフォーマンスに影響を与えることなくコレクションのストレージ容量を拡張できます。

Zilliz Cloud はクラスターに対してグローバルな mmap 設定を実装しています。特定のフィールドまたはそのインデックスに対して設定を変更できます。

詳細については、「Use mmap」を参照してください。

partitionkey.isolation

パーティションキー分離(パーティションキー Isolation)を有効にすると、Zilliz Cloud はパーティションキーの値に基づいてエンティティをグループ化し、各グループごとに個別のインデックスを作成します。検索リクエストを受信すると、Zilliz Cloud はフィルタリング条件で指定されたパーティションキーの値に基づいて対応するインデックスを特定し、そのインデックスに含まれるエンティティの範囲内でのみ検索を実行します。これにより、関係のないエンティティをスキャンせずに済み、検索パフォーマンスが大幅に向上します。

詳細については、「Use パーティションキー Isolation」を参照してください。

dynamicfield.enabled

元々動的フィールド(dynamic field)を有効にしていなかったコレクションに対して、動的フィールドを有効化します。有効化後は、元のスキーマで定義されていないフィールドを持つエンティティを挿入できます。詳細については、「Dynamic Field」を参照してください。

allow_insert_auto_id

コレクションで AutoID が有効になっている場合に、ユーザー提供の主キー値を受け入れるかどうかを指定します。

  • "true" に設定されている場合:挿入(insert)、アップサート(upsert)、一括インポート(bulk import)時に、ユーザー提供の主キーが存在すればそれを利用し、存在しない場合は自動生成された主キー値を使用します。

  • "false" に設定されている場合:ユーザー提供の主キー値は拒否または無視され、常に自動生成された主キー値が使用されます。デフォルト値は "false" です。

timezone

このコレクションにおけるタイムゾーン依存操作(特に TIMESTAMPTZ フィールドの処理)のデフォルトタイムゾーンを指定します。内部的にはタイムスタンプは UTC で保存され、Milvus はこの設定に従って表示や比較のために値を変換します。この設定が行われた場合、コレクションのタイムゾーンはデータベースのデフォルトタイムゾーンより優先されます。また、クエリ時のタイムゾーンパラメータにより、一時的に上記両方を上書きすることも可能です。値には有効なIANA タイムゾーン識別子(例:Asia/ShanghaiAmerica/ChicagoUTC)を指定する必要があります。TIMESTAMPTZ フィールドの使用方法の詳細については、「TIMESTAMPTZ Field」を参照してください。

Example 1: Set collection TTL

以下のコードスニペットは、コレクションの TTL を設定する方法を示しています。

from pymilvus import MilvusClient

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

例 2: mmap を有効にする

次のコードスニペットは、mmap を有効にする方法を示しています。

from pymilvus import MilvusClient

client.alter_collection_properties(
collection_name="my_collection",
properties={"mmap.enabled": True}
)

例 3: パーティションキーの有効化

次のコードスニペットは、パーティションキーを有効にする方法を示しています。

from pymilvus import MilvusClient

client.alter_collection_properties(
collection_name="my_collection",
properties={"partitionkey.isolation": True}
)

例4: 動的フィールドの有効化

以下のコードスニペットは、動的フィールドを有効にする方法を示しています。

from pymilvus import MilvusClient

client.alter_collection_properties(
collection_name="my_collection",
properties={"dynamicfield.enabled": True}
)

例5: allow_insert_auto_idを有効化する

allow_insert_auto_id プロパティを有効にすると、AutoIDが有効になっているコレクションに対して、insert、upsert、および一括インポート時にユーザーが主キー値を指定できるようになります。このプロパティを "true" に設定すると、Zilliz Cloudはユーザーが提供した主キー値が存在する場合はそれを利用し、存在しない場合は自動生成します。デフォルト値は "false" です。

以下の例では、allow_insert_auto_id を有効にする方法を示しています:

client.alter_collection_properties(
collection_name="my_collection",
properties={"allow_insert_auto_id": "true"}
)
# After enabling, inserts with a PK column will use that PK; otherwise Zilliz Cloud auto-generates.

例6: コレクションのタイムゾーンを設定する

timezone プロパティを使用して、コレクションのデフォルトタイムゾーンを設定できます。これにより、コレクション内のすべての操作(データ挿入、クエリ、結果表示など)において、時刻関連データの解釈および表示方法が決定されます。

timezone の値は、Asia/ShanghaiAmerica/ChicagoUTC などの有効な IANA タイムゾーン識別子 でなければなりません。無効または非標準の値を使用すると、コレクションプロパティの変更時にエラーが発生します。

以下の例では、コレクションのタイムゾーンを Asia/Shanghai に設定する方法を示しています:

client.alter_collection_properties(
collection_name="my_collection",
properties={"timezone": "Asia/Shanghai"}
)

コレクションプロパティの削除

以下のようにコレクションプロパティを削除することで、リセットすることもできます。

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