milvus-logo
LFAI
홈페이지
  • Milvus 마이그레이션

Milvus 1.x에서

이 가이드는 Milvus 1.x(0.9.x 이상 포함)에서 Milvus 2.x로 데이터를 마이그레이션하는 포괄적인 단계별 프로세스를 제공합니다. 이 가이드를 따르면 Milvus 2.x의 고급 기능과 향상된 성능을 활용하여 데이터를 효율적으로 전송할 수 있습니다.

전제 조건

소스 Milvus 설치의 메타데이터 내보내기

Milvus 0.9.x~1.x에 대한 마이그레이션 데이터를 준비하려면 소스 Milvus를 중지하거나 적어도 그 안에서 DML 작업 수행을 중지하세요.

  1. 소스 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
    
  2. Milvus 설치의 tables 폴더를 복사한 다음 meta.json 폴더와 tables 폴더를 모두 빈 폴더로 옮깁니다.

    이 단계가 완료되면 빈 폴더의 구조는 다음과 같아야 합니다:

    migration_data
    ├── meta.json
    └── tables
    
  3. 이전 단계에서 준비한 폴더를 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.localFilemeta.json 파일이 있는 로컬 디렉터리 경로. 이 구성은 meta.modelocal 로 설정된 경우에만 사용됩니다. 다른 메타 구성에 대해서는 README_1X를 참조하세요.
  • source

    파라미터설명
    source.mode소스 파일을 읽을 위치를 지정합니다. 유효한 값:
    - local: 로컬 디스크에서 파일을 읽습니다.
    - remote: 원격 스토리지에서 파일을 읽습니다.
    source.local.tablesDir소스 파일이 위치한 디렉터리 경로입니다. 예: /db/tables/.
  • target

    매개변수설명
    target.mode덤프된 파일의 저장 위치. 유효한 값:
    - local: 덤프된 파일을 로컬 디스크에 저장합니다.
    - remote: 덤프된 파일을 오브젝트 스토리지에 저장합니다.
    target.remote.outputDir클라우드 스토리지 버킷의 출력 디렉토리 경로.
    target.remote.akMilvus 2.x 스토리지의 액세스 키입니다.
    target.remote.skMilvus 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.usernameMilvus 2.x 서버의 사용자 이름입니다. Milvus 서버에 사용자 인증이 활성화된 경우 이 매개변수는 필수입니다. 자세한 내용은 인증 활성화를 참조하세요.
    target.milvus2x.passwordMilvus 2.x 서버의 비밀번호. Milvus 서버에 사용자 인증이 활성화된 경우 이 파라미터가 필요합니다. 자세한 내용은 인증 활성화를 참조하세요.

마이그레이션 작업 시작

  1. 다음 명령으로 마이그레이션 작업을 시작합니다. {YourConfigFilePath} 을 구성 파일 migration.yaml 이 있는 로컬 디렉토리로 바꿉니다.

    ./milvus-migration  dump  --config=/{YourConfigFilePath}/migration.yaml
    

    위의 명령은 Milvus 1.x의 소스 데이터를 NumPy 파일로 변환한 다음 bulkInsert 작업을 사용하여 대상 버킷에 데이터를 씁니다.

  2. NumPy 파일이 생성되면 다음 명령을 사용하여 이 파일을 Milvus 2.x로 가져옵니다. {YourConfigFilePath} 을 구성 파일 migration.yaml 이 있는 로컬 디렉토리로 바꿉니다.

    ./milvus-migration  load  --config=/{YourConfigFilePath}/migration.yaml
    

결과 확인

마이그레이션 작업이 실행되면 API 호출을 수행하거나 Attu를 사용하여 마이그레이션된 엔티티 수를 확인할 수 있습니다. 자세한 내용은 Attuget_collection_stats()를 참조하세요.

번역DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
피드백

이 페이지가 도움이 되었나요?