Tworzenie partycji

To zagadnienie opisuje, jak tworzyć partycje w systemie Milvus.

Milvus umożliwia podział większości danych wektorowych na niewielką liczbę partycji. Dzięki temu wyszukiwanie i inne operacje mogą być ograniczone do pojedynczej partycji, co poprawia wydajność.

Kolekcja składa się z jednej lub większej liczby partycji. Przy tworzeniu nowej kolekcji Milvus utworzy domyślną partycję o nazwie _default. Więcej informacji znajdziesz w słowniku - Partycja.

Poniższy przykład tworzy partycję o nazwie novel w kolekcji book.

err := milvusClient.CreatePartition(
  context.Background(),   // ctx
  "book",                 // CollectionName
  "novel"                 // partitionName
)
if err != nil {
  log.Fatal("Nie udało się utworzyć partycji: ", err.Error())
}
Parametr Opis
ctx Kontekst kontrolujący proces wywołania interfejsu API.
CollectionName Nazwa kolekcji, w której ma zostać utworzona partycja.
partitionName Nazwa tworzonej partycji.

Ograniczenia

Funkcja Maksymalne ograniczenie
Liczba partycji w jednej kolekcji 4,096

Weryfikacja istnienia partycji

Sprawdź, czy określona partycja istnieje w kolekcji.

hasPar, err := milvusClient.HasPartition(
   context.Background(),   // ctx
   "book",                 // CollectionName
   "novel"                 // partitionName
)
if err != nil {
   log.Fatal("Nie udało się sprawdzić partycji: ", err.Error())
}
log.Println(hasPar)

Wyświetlanie wszystkich partycji

listPar, err := milvusClient.ShowPartitions(
  context.Background(),   // ctx
  "book",                 // CollectionName
)
if err != nil {
  log.Fatal("Nie udało się wyświetlić partycji: ", err.Error())
}
log.Println(listPar)

Usuwanie partycji

err := milvusClient.DropPartition(
  context.Background(),   // ctx
  "book",                 // CollectionName
  "novel"                 // partitionName
)
if err != nil {
  log.Fatal("Nie udało się usunąć partycji: ", err.Error())
}

Ładowanie partycji

Milvus pozwala użytkownikom ładować partycje jako wielokrotne repliki, aby wykorzystać zasoby CPU i pamięci dodatkowych węzłów zapytań, poprawiając ogólną liczbę zapytań na sekundę (QPS) i przepustowość.

err := milvusClient.LoadPartitions(
  context.Background(),   // ctx
  "book",                 // CollectionName
  []string{"novel"},      // partitionNames
  false                   // async
)
if err != nil {
  log.Fatal("Nie udało się załadować partycji: ", err.Error())
}

Zwalnianie partycji

err := milvusClient.ReleasePartitions(
  context.Background(),   // ctx
  "book",                 // CollectionName
  []string{"novel"}       // partitionNames
)
if err != nil {
  log.Fatal("Nie udało się zwolnić partycji: ", err.Error())
}