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

パーティションの管理

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

Notes

この機能は、マネージドコレクションにのみ適用されます。

概要​

コレクションを作成すると、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"]