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

Partitions の管理

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

概要​

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

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

1 つのコレクションには最大 1,024 個の partition を持てます。

Notes

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

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

Partitions を一覧表示する​

コレクションを作成すると、Zilliz Cloud はそのコレクション内に _default という名前の partition も作成します。コレクション内の 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 を作成する​

コレクションにさらに 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 を確認する​

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

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

print(res)

# Output
#
# True

Partition のロードとリリース​

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

Partitions をロードする​

コレクション内の特定の partition を個別にロードできます。なお、コレクション内に未ロードの partition がある場合、コレクションのロード状態は 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"]