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

Partitions の管理

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

概要

collection を作成すると、Zilliz Cloud はその collection 内に _default という名前の partition も作成します。ほかの partition を追加しない場合、collection に挿入されたすべての entity は default partition に入り、すべての検索およびクエリも default partition 内で実行されます。

特定の条件に基づいてさらに partition を追加し、それらに entity を挿入できます。その後、特定の partition 内に検索やクエリを制限することで、検索パフォーマンスを向上させることができます。

1 つの collection には最大 1,024 個の partition を持てます。

📘注意

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

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

Partitions を一覧表示する

collection を作成すると、Zilliz Cloud はその collection 内に _default という名前の partition も作成します。collection 内の partition は次のように一覧表示できます。

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

Partition を作成する

collection にさらに partition を追加し、特定の条件に基づいてそれらの partition に entity を挿入できます。

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

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

print(res)

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

特定の Partition を確認する

以下のコードスニペットは、特定の collection に partition が存在するかどうかを確認する方法を示しています。

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

print(res)

# Output
#
# True

Partition のロードとリリース

1 つまたは複数の特定の partition を個別にロードまたはリリースできます。

Partitions をロードする

collection 内の特定の partition を個別にロードできます。なお、collection 内に未ロードの partition がある場合、collection のロード状態は unloaded のままになります。

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>"
# }

Partitions をリリースする

特定の partition をリリースすることもできます。

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>"
# }

Partition 内でのデータ操作

Entity の挿入と削除

特定の partition 内で insert、upsert、および delete 操作を実行できます。詳細については、以下を参照してください。

Search と Query

特定の partition 内で search および query を実行できます。詳細については、以下を参照してください。

Partition を削除する

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

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