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

コレクションの変更

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

コレクションの名前変更

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

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"
)

コレクションプロパティの設定

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

📘Notes

このセクションに記載されているすべてのプロパティは、マネージドコレクションにのみ適用されます。

サポートされるプロパティ

プロパティ

説明

collection.ttl.seconds

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

削除は非同期で行われるため、削除が完了する前でも検索やクエリを実行可能です。

詳細については、コレクションレベルの TTL の設定をご覧ください。

ttl_field

各エンティティの絶対有効期限タイムスタンプ(エンティティレベルの TTL)を格納する TIMESTAMPTZ フィールドの名前です。各エンティティは、壁時計時間がこのフィールドに格納された値に達した時点で正確に期限切れになります。フィールドが NULL の場合、そのエンティティは決して期限切れになりません。collection.ttl.seconds と相互に排他的です。

詳細については、エンティティレベルの TTL の設定をご覧ください。

mmap.enabled

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

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

詳細については、「mmap の使用」をご覧ください。

partitionkey.isolation

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

詳細については、パーティションキー分離の使用をご覧ください。

dynamicfield.enabled

有効化せずに作成されたコレクションに対して動的フィールドを有効にします。一度有効にすると、元のスキーマで定義されていないフィールドを持つエンティティを挿入できるようになります。詳細については、動的フィールドをご覧ください。

allow_insert_auto_id

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

  • "true" に設定した場合:挿入、アップサート、およびバルクインポートでは、ユーザー提供の主キーが存在すればそれを使用し、存在しない場合は主キー値が自動生成されます。

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

timezone

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

例 1: コレクションレベルの TTL の設定

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

from pymilvus import MilvusClient

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

例 2: エンティティレベル TTL の設定
Private Preview

以下のコードスニペットは、既存の TIMESTAMPTZ フィールド (expire_at) をエンティティレベル TTL の TTL フィールドとして指定します。コレクションには既にその名前の TIMESTAMPTZ フィールドが含まれている必要があり、collection.ttl.seconds は設定されていない必要があります — この 2 つの TTL モードは相互に排他的です。

エンティティレベル TTL の完全なワークフロー(スキーマ設定、挿入、クエリ、更新、削除)については、エンティティレベル TTL の設定 を参照してください。

from pymilvus import MilvusClient

client.alter_collection_properties(
collection_name="my_collection",
properties={"ttl_field": "expire_at"}
)

例 3: mmap を有効にする

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

from pymilvus import MilvusClient

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

例 4: パーティションキーを有効にする

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

from pymilvus import MilvusClient

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

例 5: 動的フィールドを有効にする

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

from pymilvus import MilvusClient

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

例 6: allow_insert_auto_id の有効化

allow_insert_auto_id プロパティを有効にすると、AutoID が有効なコレクションに対して、挿入(insert)、更新挿入(upsert)、および批量インポート(bulk import)時にユーザーが指定した主キー値を受け入れることができます。この値が "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.

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

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

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

以下の例は、コレクションのタイムゾーンを 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"
]
)