Faiss에서
이 가이드는 Faiss에서 Milvus 2.x로 데이터를 마이그레이션하는 포괄적인 단계별 프로세스를 제공합니다. 이 가이드를 따르면 Milvus 2.x의 고급 기능과 향상된 성능을 활용하여 데이터를 효율적으로 전송할 수 있습니다.
전제 조건
- 소프트웨어 버전:
- 소스 Faiss
- 대상 Milvus: 2.x
- 설치에 대한 자세한 내용은 Faiss 설치 및 Milvus 설치를 참조하세요.
- 필수 도구:
- Milvus 마이그레이션 도구. 설치에 대한 자세한 내용은 마이그레이션 도구 설치를 참조하세요.
마이그레이션 구성
예제 마이그레이션 구성 파일을 migration.yaml 으로 저장하고 실제 조건에 따라 구성을 수정합니다. 구성 파일은 로컬 디렉터리에 자유롭게 저장할 수 있습니다.
dumper: # configs for the migration job.
worker:
limit: 2
workMode: faiss # operational mode of the migration job.
reader:
bufferSize: 1024
writer:
bufferSize: 1024
loader:
worker:
limit: 2
source: # configs for the source Faiss index.
mode: local
local:
faissFile: ./testfiles/faiss/faiss_ivf_flat.index
target: # configs for the target Milvus collection.
create:
collection:
name: test1w
shardsNums: 2
dim: 256
metricType: L2
mode: remote
remote:
outputDir: testfiles/output/
cloud: aws
endpoint: 0.0.0.0:9000
region: ap-southeast-1
bucket: a-bucket
ak: minioadmin
sk: minioadmin
useIAM: false
useSSL: false
checkBucket: true
milvus2x:
endpoint: localhost:19530
username: xxxxx
password: xxxxx
다음 표에서는 예제 구성 파일의 매개변수에 대해 설명합니다. 전체 구성 목록은 Milvus 마이그레이션을 참조하세요 : Faiss에서 Milvus 2.x로 마이그레이션하기를 참조하세요.
dumper파라미터 설명 dumper.worker.limit덤퍼 스레드의 동시성입니다. dumper.worker.workMode마이그레이션 작업의 작동 모드입니다. Faiss 인덱스에서 마이그레이션할 때 faiss로 설정합니다. dumper.worker.reader.bufferSize각 배치에서 Faiss에서 읽을 버퍼 크기입니다. 단위: 단위: KB. dumper.worker.writer.bufferSize각 배치에서 Milvus에 쓸 버퍼 크기입니다. 단위: KB. loader파라미터 설명 loader.worker.limit로더 스레드의 동시성입니다. source파라미터 설명 source.mode소스 파일을 읽을 위치를 지정합니다. 유효한 값:
-local: 로컬 디스크에서 파일을 읽습니다.
-remote: 원격 스토리지에서 파일을 읽습니다.source.local.faissFile소스 파일이 있는 디렉터리 경로입니다. 예: /db/faiss.index.target매개변수 설명 target.create.collection.nameMilvus 컬렉션의 이름입니다. target.create.collection.shardsNums컬렉션에 생성할 샤드 수입니다. 샤드에 대한 자세한 내용은 용어를 참조하세요. target.create.collection.dim벡터 필드의 차원입니다. target.create.collection.metricType벡터 간의 유사성을 측정하는 데 사용되는 메트릭 유형입니다. 자세한 내용은 용어를 참조하세요. target.mode덤프된 파일의 저장 위치. 유효한 값:
-local: 덤프된 파일을 로컬 디스크에 저장합니다.
-remote: 덤프된 파일을 오브젝트 스토리지에 저장합니다.target.remote.outputDir클라우드 스토리지 버킷의 출력 디렉토리 경로. target.remote.cloud클라우드 스토리지 서비스 제공업체. 예시 값: aws,gcp,azure.target.remote.endpointMilvus 2.x 스토리지의 엔드포인트. target.remote.region클라우드 스토리지 지역. 로컬 MinIO를 사용하는 경우 어떤 값이라도 가능합니다. target.remote.bucket데이터를 저장할 버킷 이름. 이 값은 Milvus 2.x의 구성과 동일해야 합니다. 자세한 내용은 시스템 구성을 참조하세요. target.remote.akMilvus 2.x 스토리지의 액세스 키입니다. target.remote.skMilvus 2.x 스토리지의 비밀 키입니다. target.remote.useIAM연결에 IAM 역할을 사용할지 여부. target.remote.useSSLMilvus 2.x 연결 시 SSL 활성화 여부. 자세한 내용은 전송 중 암호화를 참조하세요. target.remote.checkBucket지정한 버킷이 오브젝트 스토리지에 존재하는지 확인할지 여부입니다. target.milvus2x.endpoint대상 Milvus 서버의 주소입니다. target.milvus2x.usernameMilvus 2.x 서버의 사용자 이름입니다. Milvus 서버에 사용자 인증이 활성화된 경우 이 매개변수는 필수입니다. 자세한 내용은 인증 활성화를 참조하세요. target.milvus2x.passwordMilvus 2.x 서버의 비밀번호. Milvus 서버에 사용자 인증이 활성화된 경우 이 파라미터가 필요합니다. 자세한 내용은 인증 활성화를 참조하세요.
마이그레이션 작업 시작
다음 명령으로 마이그레이션 작업을 시작합니다.
{YourConfigFilePath}을 구성 파일migration.yaml이 있는 로컬 디렉토리로 바꿉니다../milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml위의 명령은 Faiss 인덱스 데이터를 NumPy 파일로 변환한 다음 bulkInsert 작업을 사용하여 대상 버킷에 데이터를 씁니다.
NumPy 파일이 생성되면 다음 명령을 사용하여 이 파일을 Milvus 2.x로 가져옵니다.
{YourConfigFilePath}을 구성 파일migration.yaml이 있는 로컬 디렉토리로 바꿉니다../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
결과 확인
마이그레이션 작업이 실행되면 API 호출을 수행하거나 Attu를 사용하여 마이그레이션된 엔티티 수를 확인할 수 있습니다. 자세한 내용은 Attu 및 get_collection_stats()를 참조하세요.