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.name
Milvus 컬렉션의 이름입니다. 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.endpoint
Milvus 2.x 스토리지의 엔드포인트. target.remote.region
클라우드 스토리지 지역. 로컬 MinIO를 사용하는 경우 어떤 값이라도 가능합니다. target.remote.bucket
데이터를 저장할 버킷 이름. 이 값은 Milvus 2.x의 구성과 동일해야 합니다. 자세한 내용은 시스템 구성을 참조하세요. target.remote.ak
Milvus 2.x 스토리지의 액세스 키입니다. target.remote.sk
Milvus 2.x 스토리지의 비밀 키입니다. target.remote.useIAM
연결에 IAM 역할을 사용할지 여부. target.remote.useSSL
Milvus 2.x 연결 시 SSL 활성화 여부. 자세한 내용은 전송 중 암호화를 참조하세요. target.remote.checkBucket
지정한 버킷이 오브젝트 스토리지에 존재하는지 확인할지 여부입니다. target.milvus2x.endpoint
대상 Milvus 서버의 주소입니다. target.milvus2x.username
Milvus 2.x 서버의 사용자 이름입니다. Milvus 서버에 사용자 인증이 활성화된 경우 이 매개변수는 필수입니다. 자세한 내용은 인증 활성화를 참조하세요. target.milvus2x.password
Milvus 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()를 참조하세요.