パーティションの作成

このトピックでは、Milvus でのパーティションの作成方法について説明します。

Milvus は、ほとんどのベクトルデータを少数のパーティションに分割することを可能としています。これにより、検索やその他の操作を単一のパーティション内で制限でき、パフォーマンスが向上します。

コレクションは1つ以上のパーティションで構成されています。新しいコレクションを作成する際、Milvus はデフォルトのパーティションである _default を作成します。詳細については、用語集 - パーティションを参照してください。

次の例では、コレクション booknovel という名前のパーティションを作成します。

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())
}