• Milvus 소개
  • 시작하기
  • 개념
  • 사용자 안내서
  • 데이터 가져오기
  • AI 도구
  • 관리 가이드
  • 도구
  • 연동 기능
  • 튜토리얼
  • 자주 묻는 질문
  • API Reference

스냅샷 사용 사례Compatible with Milvus 3.0.x

이 가이드에서는 스냅샷의 일반적인 사용 사례를 확인할 수 있습니다.

데이터 백업 및 복원

스냅샷은 특정 시점의 데이터를 빠르게 캡처한 것으로, 신속한 롤백이나 테스트(수일에서 수주)에 적합합니다. 반면 백업은 독립적이고 완전한 복사본으로, 장기적인 재해 복구(수주에서 수년) 및 전체 스토리지 장애에 대한 보다 강력한 보호를 위해 별도로 저장됩니다.

다음 표에서는 스냅샷과 백업을 비교합니다.

백업

스냅샷

백업 생성

모든 데이터 파일을 복사합니다(시간이 많이 소요됨)

메타데이터만 생성(밀리초 단위)

복원

데이터를 가져오고 인덱스를 재구축합니다

기존 데이터 및 인덱스 파일만 복사

성능

느리고 리소스 소모가 큼

빠르고 가볍습니다(몇 초에서 몇 분 소요)

시스템에 미치는 영향

I/O 및 CPU 사용량이 높음

영향 최소화

스냅샷 생성은 일반적으로 밀리초 정도 소요되며, 복원은 데이터 양에 따라 몇 초에서 몇 분 정도 걸립니다.

스냅샷 제한, 제약 조건 및 시스템에 미치는 영향에 대한 자세한 내용은 스냅샷을 참조하십시오.

외부 컬렉션을 사용한 데이터 처리

스냅샷은 분석 또는 검증 워크로드를 위한 안정적이고 특정 시점의 소스를 제공할 수 있습니다. Milvus 스냅샷의 경우, 스냅샷 파일을 일반 Spark 입력으로 직접 읽는 대신 milvus-table 외부 컬렉션 형식을 사용하십시오. Milvus 스냅샷에는 컬렉션 메타데이터, 세그먼트 매니페스트, 삭제 로그 및 기본 키 통계가 저장되므로, Milvus는 올바른 스키마와 삭제 세미오틱을 유지하기 위해 스냅샷 메타데이터 JSON과 milvus-table 리더가 필요합니다.

이 워크플로는 스냅샷 데이터에 대해 쿼리 가능한 외부 컬렉션을 생성합니다. 주요 열 데이터는 스냅샷 소스에서 계속 참조되며, 새로 고침(refresh) 단계에서는 소스 StorageV3 매니페스트를 대상 외부 세그먼트로 매핑합니다.

1단계: 스냅샷 메타데이터 경로 확인

일반 Milvus 컬렉션에서 스냅샷을 생성하거나 선택한 다음, 해당 스냅샷을 설명하여 오브젝트 스토리지 위치를 확인합니다.

from pymilvus import DataType, MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)

snapshot_info = client.describe_snapshot(
    snapshot_name="analytics_snapshot_20260321",
    collection_name="my_collection",
    include_collection_info=True
)

external_source = f"s3://bucket/{snapshot_info.s3_location}"

2단계: milvus-table 외부 컬렉션 생성 및 새로 고침

스키마가 스냅샷 소스 컬렉션과 일치하는 외부 컬렉션을 생성합니다. ‘ external_spec.format ’을 ‘ "milvus-table" ’로 설정하고, 각 대상 데이터 필드의 ‘ external_field ’을 해당 소스 필드 이름으로 설정합니다.

schema = client.create_schema(
    external_source=external_source,
    external_spec="""{
        "format": "milvus-table",
        "extfs": {
            "cloud_provider": "aws",
            "region": "us-west-2",
            "access_key_id": "YOUR_ACCESS_KEY",
            "access_key_value": "YOUR_SECRET_KEY"
        }
    }""",
)

schema.add_field(
    field_name="id",
    datatype=DataType.INT64,
    is_primary=True,
    external_field="id",
)
schema.add_field(
    field_name="embedding",
    datatype=DataType.FLOAT_VECTOR,
    dim=768,
    external_field="embedding",
)

client.create_collection(
    collection_name="snapshot_external_collection",
    schema=schema,
)

job_id = client.refresh_external_collection(
    collection_name="snapshot_external_collection"
)

갱신이 완료된 후에는 인덱스를 생성하고, 외부 컬렉션을 로드하며, 스냅샷 기반 뷰에 대해 검색 또는 쿼리 작업을 실행할 수 있습니다.

번역DeepL

관리형 Milvus를 무료로 사용해 보세요

Zilliz Cloud는 번거로움이 없으며, Milvus 기반으로 10배 더 빠릅니다.

시작하기
피드백

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