管理Partitions
在Milvus向量數(shù)據(jù)庫中,創(chuàng)建Collection時系統(tǒng)會自動生成名為_default
的默認(rèn)分區(qū)(Partition),用于存放未指定分區(qū)的插入數(shù)據(jù)。通過合理設(shè)置分區(qū),可針對性地縮小查詢范圍,有效提升檢索性能。本文為您介紹如何在Milvus中創(chuàng)建和管理分區(qū)。
前提條件
已在本地客戶端成功安裝了PyMilvus庫,并將其更新至當(dāng)前最新版本。
如果您尚未在本地客戶端安裝PyMilvus庫,或者需要將其更新至當(dāng)前最新版本,您可以執(zhí)行以下命令。
pip install --upgrade pymilvus
已創(chuàng)建Milvus實例,請參見詳情快速創(chuàng)建Milvus實例。
已創(chuàng)建Collection,詳情請參見管理Collections。
使用限制
單個Collection內(nèi)最多可以創(chuàng)建4096個分區(qū)。
查看Partition
from pymilvus import MilvusClient
client = MilvusClient(
uri="http://c-xxxx.milvus.aliyuncs.com:19530", # Milvus實例的公網(wǎng)地址。
token="<yourUsername>:<yourPassword>", # 登錄Milvus實例的用戶名和密碼。
db_name="default" # 待連接的數(shù)據(jù)庫名稱,本文示例為默認(rèn)的default。
)
res = client.list_partitions(collection_name="yourCollectionname")
print(res)
創(chuàng)建Partition
創(chuàng)建分區(qū)是在已有的集合基礎(chǔ)上進(jìn)行的,分區(qū)是Collection的邏輯子集,用于組織和管理Collection中的數(shù)據(jù)。因此,在創(chuàng)建分區(qū)之前需要先創(chuàng)建對應(yīng)的Collection。
client.create_partition(
collection_name="<yourCollectionname>", # 待創(chuàng)建分區(qū)的Collection名稱。
partition_name="<yourPartitionname>" # 待創(chuàng)建的分區(qū)的名稱。
)
res = client.list_partitions(collection_name="<yourCollectionname>")
print(res)
加載和釋放分區(qū)
加載Partition
通過查詢Load狀態(tài),可以確保只對未加載或已卸載的分區(qū)進(jìn)行加載操作。
查看Load狀態(tài)。
# Release the collection client.release_collection(collection_name="yourCollectionname") # Check the load status res = client.get_load_state(collection_name="yourCollectionname") print(res) res = client.get_load_state( collection_name="yourCollectionname", partition_name="yourPartitionname" ) print(res) res = client.get_load_state( collection_name="yourCollectionname", partition_name="yourPartitionname1" ) print(res)
加載分區(qū)。
您可以使用load_partitions函數(shù)加載分區(qū)到內(nèi)存中。
client.load_partitions( collection_name="test_milvus", partition_names=["yourPartitionname", "yourPartitionname1"] ) res = client.get_load_status( collection_name="yourCollectionname", partition_name="yourPartitionname" ) res = client.get_load_status( collection_name="yourCollectionname", partition_name="yourPartitionname1" )
卸載Partition
您可以使用release_collection函數(shù)來卸載分區(qū)。
client.release_partitions(
collection_name="yourCollectionname",
partition_names=["_default", "yourPartitionname", "yourPartitionname1"]
)
res = client.get_load_status(
collection_name="yourCollectionname",
)
刪除Partition
您可以使用drop_partition函數(shù)來刪除分區(qū)。
client.drop_partition(
collection_name="yourCollectionname",
partition_name="yourPartitionname"
)
res = client.list_partitions(collection_name="yourCollectionname")
print(res)