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

コレクションの変更

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

コレクション名の変更

コレクションの名前は、次の手順で変更できます。

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

各エンティティの絶対有効期限タイムスタンプを格納する TIMESTAMPTZ フィールドの名前です (エンティティレベルの TTL)。各エンティティは、実時間がこのフィールドに格納された値に達した時点で正確に期限切れとなります。フィールド内の 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/ShanghaiAmerica/ChicagoUTC) を指定する必要があります。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 フィールドとして指定します。コレクションには同名の 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 が有効なコレクションに対して、insert、upsert、バルクインポート時にユーザー指定の主キー値を受け入れられます。"true" に設定した場合、Zilliz Cloud はユーザー指定の主キー値が存在すればそれを使用し、存在しない場合は自動生成します。デフォルトは "false" です。

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

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

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

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

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

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

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