파티션 생성
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()