문서 및 스키마 버전 관리
시간이 지남에 따라 변화하는 기술 요구 사항을 고려하여 스키마를 변경해야 할 수도 있습니다. 스키마가 변경되면 스키마 디자인 패턴을 사용하여 원래 문서 구조를 유지할 수 있습니다. 문서와 스키마의 이전 버전을 유지하면 성능 집약적인 스키마 마이그레이션과 다운타임을 피할 수 있습니다.
사용 사례
데이터 요구 사항이 변경되고 기록 데이터를 원래 형식으로 유지하려는 경우 버전 관리 패턴을 사용합니다. 버전 관리 패턴은 애플리케이션 이 다음 조건 중 하나를 충족할 때 가장 유용합니다.
애플리케이션 다운타임은 마이그레이션 옵션이 아닙니다.
문서를 새 스키마 로 업데이트하는 데 몇 시간, 며칠 또는 몇 주가 걸릴 수 있습니다.
문서를 새 스키마 로 업데이트할 필요는 없습니다.
버전 관리 패턴은 데이터 마이그레이션 방식을 결정하는 데 도움이 되며 테이블 형식 데이터베이스에 비해 더 많은 유연성을 제공합니다.
버전 관리 패턴에 대해 다음과 같은 특정 애플리케이션 사용 사례를 고려하세요.
보험 회사는 고객이 추가 항목을 보장하기 위해 정책을 수정할 수 있도록 허용합니다. 고객이 정책을 변경하면 보험 회사는 시간이 지남에 따라 정책 변경 기록을 보관합니다. 회사는 문서 버전 관리 패턴을 사용하여 각 업데이트를 별도의 문서에 저장하여 정책 개정 사항을 추적합니다. 기록 데이터는 별도의 컬렉션에 저장되며 현재 데이터에 대한 쿼리에 영향을 주지 않습니다.
회사는 고객 연락처 정보를 저장합니다. 원래 스키마에서는
homePhone
,cellPhone
및email
과 같은 다양한 문의 메서드가 개별 필드에 저장됩니다. 시간이 지남에 따라homePhone
번호를 사용하는 고객이 줄어들고 있으므로 회사는 연락처 정보를 가변 하위 필드가 있는 일반contacts
문서로 이동하도록 스키마를 수정합니다. 스키마 변경 후 회사는 스키마 버전 관리 패턴을 구현하고schemaVersion
필드를 추가하여 애플리케이션에 각 문서를 쿼리하는 방법을 알려줍니다.
작업
문서 및 스키마 변경 기록을 보관하는 방법을 알아보려면 다음 페이지를 참조하세요.