Criando Partições

Este tópico descreve como criar partições no Milvus.

O Milvus permite que a maioria dos dados vetoriais seja dividida em um pequeno número de partições. Isso possibilita restringir a pesquisa e outras operações a uma única partição, melhorando o desempenho.

Uma coleção consiste em uma ou mais partições. Ao criar uma nova coleção, o Milvus criará uma partição padrão, _default. Para obter mais informações, consulte o Glossário - Partição.

O exemplo a seguir cria uma partição chamada novel na coleção book.

err := milvusClient.CreatePartition(
  context.Background(),   // ctx
  "book",                 // NomeColeção
  "novel"                 // NomePartição
)
if err != nil {
  log.Fatal("Falha ao criar a partição: ", err.Error())
}
Parâmetro Descrição
ctx Contexto para controlar o processo de chamada da API.
NomeColeção Nome da coleção na qual criar uma partição.
NomePartição Nome da partição a ser criada.

Limites

Recurso Limite Máximo
Número de partições em uma única coleção 4.096

Verificar a Existência de uma Partição

Verificar se uma partição especificada existe em uma coleção.

hasPar, err := milvusClient.HasPartition(
   context.Background(),   // ctx
   "book",                 // NomeColeção
   "novel",                // NomePartição
)
if err != nil {
   log.Fatal("Falha ao verificar a partição: ", err.Error())
}
log.Println(hasPar)

Listar Todas as Partições

listPar, err := milvusClient.ShowPartitions(
  context.Background(),   // ctx
  "book",                 // NomeColeção
)
if err != nil {
  log.Fatal("Falha ao listar as partições: ", err.Error())
}
log.Println(listPar)

Excluir uma Partição

err := milvusClient.DropPartition(
  context.Background(),   // ctx
  "book",                 // NomeColeção
  "novel",                // NomePartição
)
if err != nil {
  log.Fatal("Falha ao excluir a partição: ", err.Error())
}

Carregar uma Partição

O Milvus permite aos usuários carregar partições como réplicas múltiplas para aproveitar os recursos de CPU e memória de nós de consulta adicionais, melhorando o QPS e throughput geral.

err := milvusClient.LoadPartitions(
  context.Background(),   // ctx
  "book",                 // NomeColeção
  []string{"novel"},      // NomesPartições
  false                   // async
)
if err != nil {
  log.Fatal("Falha ao carregar as partições: ", err.Error())
}

Liberar uma Partição

err := milvusClient.ReleasePartitions(
  context.Background(),   // ctx
  "book",                 // NomeColeção
  []string{"novel"}       // NomesPartições
)
if err != nil {
  log.Fatal("Falha ao liberar as partições: ", err.Error())
}