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

パーティションの管理

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

概要​

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

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

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

📘Notes

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

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

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

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

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

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

特定のパーティション内で挿入、アップサート、削除の各操作を実行できます。詳細については、次を参照してください。

検索とクエリ​

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

パーティションの削除​

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

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