Milvus 1.x에서
이 가이드는 Milvus 1.x(0.9.x 이상 포함)에서 Milvus 2.x로 데이터를 마이그레이션하는 포괄적인 단계별 프로세스를 제공합니다. 이 가이드를 따르면 Milvus 2.x의 고급 기능과 향상된 성능을 활용하여 데이터를 효율적으로 전송할 수 있습니다.
전제 조건
- 소프트웨어 버전:
- 소스 Milvus: 0.9.x ~ 1.x
- 대상 Milvus: 2.x
- 필수 도구:
- Milvus 마이그레이션 도구. 설치에 대한 자세한 내용은 마이그레이션 도구 설치를 참조하세요.
소스 Milvus 설치의 메타데이터 내보내기
Milvus 0.9.x~1.x에 대한 마이그레이션 데이터를 준비하려면 소스 Milvus를 중지하거나 적어도 그 안에서 DML 작업 수행을 중지하세요.
소스 Milvus 설치의 메타데이터를
meta.json
으로 내보냅니다.- MySQL을 백엔드로 사용하는 설치의 경우 다음을 실행합니다.
./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
- SQLite를 백엔드로 사용하는 설치의 경우 다음을 실행합니다.
./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
Milvus 설치의
tables
폴더를 복사한 다음meta.json
폴더와tables
폴더를 모두 빈 폴더로 옮깁니다.이 단계가 완료되면 빈 폴더의 구조는 다음과 같아야 합니다:
migration_data ├── meta.json └── tables
이전 단계에서 준비한 폴더를 S3 블록 스토리지 버킷에 업로드하거나 다음 섹션에서 이 로컬 폴더를 직접 사용하세요.
마이그레이션 파일 구성
예제 마이그레이션 구성 파일을 migration.yaml
으로 저장하고 실제 조건에 따라 구성을 수정합니다. 구성 파일은 어느 로컬 디렉터리에나 자유롭게 저장할 수 있습니다.
dumper:
worker:
limit: 2
workMode: milvus1x
reader:
bufferSize: 1024
writer:
bufferSize: 1024
loader:
worker:
limit: 16
meta:
mode: local
localFile: /outputDir/test/meta.json
source:
mode: local
local:
tablesDir: /db/tables/
target:
mode: remote
remote:
outputDir: "migration/test/xx"
ak: xxxx
sk: xxxx
cloud: aws
region: us-west-2
bucket: xxxxx
useIAM: true
checkBucket: false
milvus2x:
endpoint: "{yourMilvus2_xServerAddress}:{port}"
username: xxxx
password: xxxx
다음 표에서는 예제 구성 파일의 매개변수에 대해 설명합니다. 전체 구성 목록은 Milvus 마이그레이션을 참조하세요 : Milvus1.x에서 Milvus 2.x로 마이그레이션을 참조하세요.
dumper
파라미터 설명 dumper.worker.limit
덤퍼 스레드의 동시성입니다. dumper.worker.workMode
마이그레이션 작업의 작동 모드입니다. Milvus 1.x에서 마이그레이션하는 경우 milvus1x
로 설정합니다.dumper.worker.reader.bufferSize
각 배치에서 Milvus 1.x에서 읽을 버퍼 크기입니다. 단위: KB. dumper.worker.writer.bufferSize
각 배치에서 Milvus 2.x에 쓸 버퍼 크기입니다. 단위: KB. loader
파라미터 설명 loader.worker.limit
로더 스레드의 동시성입니다. meta
파라미터 설명 meta.mode
메타 파일 meta.json을 읽을 위치를 지정합니다. 유효한 값은 다음과 같습니다: local
,remote
,mysql
,sqlite
.meta.localFile
meta.json
파일이 있는 로컬 디렉터리 경로. 이 구성은meta.mode
가local
로 설정된 경우에만 사용됩니다. 다른 메타 구성에 대해서는 README_1X를 참조하세요.source
파라미터 설명 source.mode
소스 파일을 읽을 위치를 지정합니다. 유효한 값:
-local
: 로컬 디스크에서 파일을 읽습니다.
-remote
: 원격 스토리지에서 파일을 읽습니다.source.local.tablesDir
소스 파일이 위치한 디렉터리 경로입니다. 예: /db/tables/
.target
매개변수 설명 target.mode
덤프된 파일의 저장 위치. 유효한 값:
-local
: 덤프된 파일을 로컬 디스크에 저장합니다.
-remote
: 덤프된 파일을 오브젝트 스토리지에 저장합니다.target.remote.outputDir
클라우드 스토리지 버킷의 출력 디렉토리 경로. target.remote.ak
Milvus 2.x 스토리지의 액세스 키입니다. target.remote.sk
Milvus 2.x 스토리지의 비밀 키입니다. target.remote.cloud
클라우드 스토리지 서비스 제공업체. 예시 값 aws
,gcp
,azure
.target.remote.region
클라우드 스토리지 지역. 로컬 MinIO를 사용하는 경우 어떤 값이라도 가능합니다. target.remote.bucket
데이터를 저장할 버킷 이름. 이 값은 Milvus 2.x의 구성과 동일해야 합니다. 자세한 내용은 시스템 구성을 참조하세요. target.remote.useIAM
연결에 IAM 역할을 사용할지 여부입니다. 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
위의 명령은 Milvus 1.x의 소스 데이터를 NumPy 파일로 변환한 다음 bulkInsert 작업을 사용하여 대상 버킷에 데이터를 씁니다.
NumPy 파일이 생성되면 다음 명령을 사용하여 이 파일을 Milvus 2.x로 가져옵니다.
{YourConfigFilePath}
을 구성 파일migration.yaml
이 있는 로컬 디렉토리로 바꿉니다../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
결과 확인
마이그레이션 작업이 실행되면 API 호출을 수행하거나 Attu를 사용하여 마이그레이션된 엔티티 수를 확인할 수 있습니다. 자세한 내용은 Attu 및 get_collection_stats()를 참조하세요.