パーティションの作成
このトピックでは、Milvus でのパーティションの作成方法について説明します。
Milvus は、ほとんどのベクトルデータを少数のパーティションに分割することを可能としています。これにより、検索やその他の操作を単一のパーティション内で制限でき、パフォーマンスが向上します。
コレクションは1つ以上のパーティションで構成されています。新しいコレクションを作成する際、Milvus はデフォルトのパーティションである _default
を作成します。詳細については、用語集 - パーティションを参照してください。
次の例では、コレクション book
に novel
という名前のパーティションを作成します。
err := milvusClient.CreatePartition(
context.Background(), // ctx
"book", // CollectionName
"novel" // partitionName
)
if err != nil {
log.Fatal("パーティションの作成に失敗: ", err.Error())
}
パラメータ | 説明 |
---|---|
ctx |
API 呼び出しプロセスを制御するためのコンテキスト。 |
CollectionName |
パーティションを作成するコレクションの名前。 |
partitionName |
作成するパーティションの名前。 |
制限
機能 | 最大制限 |
---|---|
単一コレクション内のパーティション数 | 4,096 |
パーティションの存在を確認する
指定したコレクション内に指定したパーティションが存在するかどうかを確認します。
hasPar, err := milvusClient.HasPartition(
context.Background(), // ctx
"book", // CollectionName
"novel", // partitionName
)
if err != nil {
log.Fatal("パーティションの確認に失敗: ", err.Error())
}
log.Println(hasPar)
すべてのパーティションをリストする
listPar, err := milvusClient.ShowPartitions(
context.Background(), // ctx
"book", // CollectionName
)
if err != nil {
log.Fatal("パーティションのリスト取得に失敗: ", err.Error())
}
log.Println(listPar)
パーティションの削除
err := milvusClient.DropPartition(
context.Background(), // ctx
"book", // CollectionName
"novel", // partitionName
)
if err != nil {
log.Fatal("パーティションの削除に失敗: ", err.Error())
}
パーティションのロード
Milvus は、パーティションを複数のレプリカとしてロードし、追加のクエリノードの CPU およびメモリリソースを活用して、全体的な QPS およびスループットを向上させることができます。
err := milvusClient.LoadPartitions(
context.Background(), // ctx
"book", // CollectionName
[]string{"novel"}, // partitionNames
false // async
)
if err != nil {
log.Fatal("パーティションのロードに失敗: ", err.Error())
}
パーティションの解放
err := milvusClient.ReleasePartitions(
context.Background(), // ctx
"book", // CollectionName
[]string{"novel"} // partitionNames
)
if err != nil {
log.Fatal("パーティションの解放に失敗: ", err.Error())
}