파티션 생성

Milvus는 벡터 데이터를 몇 개의 파티션으로 나눌 수 있습니다. 검색 및 기타 작업을 특정 파티션으로 제한하여 성능을 개선할 수 있습니다.

컬렉션은 하나 이상의 파티션으로 구성됩니다. 새 컬렉션을 만들 때 Milvus는 기본 파티션인 _default를 생성합니다.

다음 예에서는 book 컬렉션에 novel이라는 파티션을 설정하는 방법을 보여줍니다.

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