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

パーティションの管理

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

概要​

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

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

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

Notes

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

この機能については、このページでは説明しません。詳細については、Partition Key の使用 を参照してください。

パーティションの一覧表示​

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

python
from pymilvus import MilvusClient

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

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

print(res)

# Output
#
# ["_default"]

パーティションの作成​

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

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

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

print(res)

# Output
#
# ["_default", "partitionA"]

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

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

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

print(res)

# Output
#
# True

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

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

パーティションのロード​

コレクション内の特定のパーティションを個別にロードできます。コレクション内に未ロードのパーティションがある場合、コレクションのロード状態は未ロードのままであることに注意してください。

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

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

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

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

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

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

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

print(res)

# Output
#
# {
# "state": "<LoadState: NotLoad>"
# }

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

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

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

検索とクエリ​

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

パーティションの削除​

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

python
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"]