Создание разделов
Milvus позволяет разбить векторные данные на несколько разделов. Поиск и другие операции могут быть ограничены одним разделом для улучшения производительности.
Коллекция состоит из одного или нескольких разделов. При создании новой коллекции Milvus создаст раздел по умолчанию _default
.
В следующем примере создается раздел с именем novel
в коллекции book
.
from pymilvus import Collection
collection = Collection("book") # Получить существующую коллекцию
collection.create_partition("novel")
Параметр | Описание |
---|---|
partition_name |
Имя создаваемого раздела. |
description (необязательно) |
Описание создаваемого раздела. |
Ограничения
Функция | Максимальное ограничение |
---|---|
Количество разделов в коллекции | 4,096 |
Проверка существования раздела
Проверить, существует ли указанный раздел в указанной коллекции.
from pymilvus import Collection
collection = Collection("book") # Получить существующую коллекцию
collection.has_partition("novel")
Перечисление всех разделов
from pymilvus import Collection
collection = Collection("book") # Получить существующую коллекцию
collection.partitions
Удаление раздела
from pymilvus import Collection
collection.drop_partition("novel")
Загрузка раздела
Загрузка раздела в память вместо загрузки всей коллекции может значительно сократить использование памяти. Все операции поиска и запроса в Milvus выполняются в памяти.
Начиная с версии 2.3.0, Milvus улучшил операции с разделами и поддерживает каскадную загрузку и освобождение. Это означает, что вы можете выполнять любую комбинацию следующих операций:
- Загрузка уже загруженной коллекции.
- Загрузка коллекции, затем загрузка конкретного раздела(ов) в коллекции.
- Загрузка раздела, затем загрузка коллекции, к которой принадлежит раздел.
- Загрузка раздела и повторная загрузка перед освобождением.
Milvus позволяет пользователям загружать разделы в виде нескольких реплик для использования ресурсов CPU и памяти дополнительных узлов запросов. Эта функция поддерживается в текущей версии через PyMilvus.
from pymilvus import Collection
collection = Collection("book") # Получить существующую коллекцию
collection.load(["novel"], replica_number=2)
from pymilvus import Partition
partition = Partition("novel") # Получить существующий раздел
partition.load(replica_number=2)
Получение информации о репликах
Вы можете просмотреть информацию о загруженных репликах.
from pymilvus import Partition
partition = Partition("novel") # Получить существующий раздел
partition.load(replica_number=2) # Загрузить раздел с 2 репликами
result = partition.get_replicas()
print(result)
Освобождение раздела
Как освободить раздел из памяти после поиска или запроса для сокращения использования памяти.
Начиная с версии 2.3.0, Milvus улучшил операции с разделами и поддерживает каскадную загрузку и освобождение. Это означает, что вы можете выполнять любую комбинацию следующих операций:
- Освобождение загруженной коллекции.
- Освобождение конкретного раздела(ов) в загруженной коллекции.
- Освобождение загруженного раздела.
- Освобождение частично загруженных разделов в коллекции.
from pymilvus import Partition
partition = Partition("novel") # Получить существующий раздел
partition.release()