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

コレクションを変更する

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

コレクションの名前を変更する​

コレクションの名前は次のように変更できます。

python
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

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

詳細は、Partition Key Isolation を使用するを参照してください。

dynamicfield.enabled

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

allow_insert_auto_id

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

  • "true" に設定した場合、挿入、アップサート、一括インポートでは、ユーザー指定の主キーがあればそれを使用し、ない場合は主キー値が自動生成されます。

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

timezone

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

例 1: コレクション単位の TTL を設定する​

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

python
from pymilvus import MilvusClient

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

例 2: エンティティ単位の TTL を設定する | PRIVATE​

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

エンティティ単位の TTL のワークフロー全体(スキーマ設定、挿入、クエリ、リフレッシュ、削除)については、エンティティ単位の TTL を設定する を参照してください。

python
from pymilvus import MilvusClient

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

例 3: mmap を有効にする​

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

python
from pymilvus import MilvusClient

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

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

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

python
from pymilvus import MilvusClient

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

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

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

python
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 が有効なコレクションが、挿入、アップサート、一括インポート時にユーザー指定の主キー値を受け入れられるようになります。"true" に設定すると、Zilliz Cloud はユーザー指定の主キー値があればそれを使用し、ない場合は自動生成します。デフォルトは "false" です。

次の例は、allow_insert_auto_id を有効にする方法を示しています。

python
from pymilvus import MilvusClient

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 の値は、Asia/Shanghai、America/Chicago、UTC など、有効な IANA タイムゾーン識別子 である必要があります。無効または非標準の値を使用すると、コレクションプロパティの変更時にエラーが発生します。

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

python
from pymilvus import MilvusClient

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

コレクションプロパティを削除する​

コレクションプロパティを削除してリセットすることもできます。方法は次のとおりです。

python
from pymilvus import MilvusClient

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