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

パーティションの管理

パーティションはコレクションのサブセットです。各パーティションは親コレクションと同じデータ構造を共有しますが、コレクション内のデータのサブセットのみを含みます。このページでは、パーティションの管理方法を理解するのに役立ちます。

概要

コレクションを作成する際、Zilliz Cloudはコレクション内に_defaultという名前のパーティションも作成します。他のパーティションを追加しない場合、コレクションに挿入されたすべてのエンティティはデフォルトパーティションに入り、すべての検索およびクエリもデフォルトパーティション内で実行されます。

より多くのパーティションを追加し、特定の基準に基づいてエンティティを挿入できます。その後、特定のパーティション内での検索およびクエリを制限し、検索パフォーマンスを向上させることができます。

1つのコレクションには最大で1,024個のパーティションを持つことができます。

📘備考

パーティションキー機能は、パーティションに基づく検索最適化であり、Zilliz Cloudが特定のスカラーフィールドの値に基づいてエンティティを異なるパーティションに分散できるようにします。この機能はパーティション指向のマルチテナンシーを実装し、検索パフォーマンスを向上させます。

この機能についてはこのページでは説明しません。詳しくは、パーティションキーの使用を参照してください。

パーティションのリスト

コレクションを作成する際、Zilliz Cloudはコレクション内に_defaultという名前のパーティションも作成します。コレクション内のパーティションを次のようにリストできます。

from pymilvus import MilvusClient

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

res = client.list_partitions(
collection_name="my_collection"
)

print(res)

# 出力
#
# ["_default"]

パーティションの作成

コレクションにさらにパーティションを追加し、特定の基準に基づいてエンティティをこれらのパーティションに挿入できます。

client.create_partition(
collection_name="my_collection",
partition_name="partitionA"
)

res = client.list_partitions(
collection_name="my_collection"
)

print(res)

# 出力
#
# ["_default", "partitionA"]

特定のパーティションの確認

以下のコードスニペットは、特定のコレクションにパーティションが存在するかどうかを確認する方法を示しています。

res = client.has_partition(
collection_name="my_collection",
partition_name="partitionA"
)

print(res)

# 出力
#
# True

パーティションのロードとリリース

1つまたは特定のパーティションを個別にロードまたはリリースできます。

パーティションのロード

コレクション内の特定のパーティションを個別にロードできます。コレクションにロードされていないパーティションが1つでもある場合、コレクションのロード状態はロードされていない状態のままになります。

client.load_partitions(
collection_name="my_collection",
partition_names=["partitionA"]
)

res = client.get_load_state(
collection_name="my_collection",
partition_name="partitionA"
)

print(res)
# 出力
#
# {
# "state": "<LoadState: Loaded>"
# }

パーティションのリリース

特定のパーティションをリリースすることもできます。

client.release_partitions(
collection_name="my_collection",
partition_names=["partitionA"]
)

res = client.get_load_state(
collection_name="my_collection",
partition_name="partitionA"
)

print(res)

# 出力
#
# {
# "state": "<LoadState: NotLoaded>"
# }

パーティション内のデータ操作

エンティティの挿入と削除

特定の操作で挿入、アップサート、削除操作を実行できます。詳細については、以下を参照してください。

検索とクエリ

特定のパーティション内で検索およびクエリを実行できます。詳細については、以下を参照してください。

パーティションの削除

不要になったパーティションを削除できます。パーティションを削除する前に、パーティションがリリースされていることを確認してください。

client.release_partitions(
collection_name="my_collection",
partition_names=["partitionA"]
)

client.drop_partition(
collection_name="my_collection",
partition_name="partitionA"
)

res = client.list_partitions(
collection_name="my_collection"
)

print(res)

# ["_default"]