문서 미리보기
개요
모든 데이터베이스 트리거 실행에는 관련 변경 이벤트가 있습니다. 문서 사전 이미지 를 포함하도록 이러한 변경 이벤트를 구성할 수 있습니다. 사전 이미지는 변경 전의 문서의 스냅샷입니다.
예시
사전 이미지가 있는 collection에서 updateOne
를 고려합니다.
pets.updateOne( { name: "Fido" }, { $inc: { age: 1 } } )
사전 이미지는 쓰기 작업 변경 이벤트를 위해 다음 데이터를 추가합니다.
fullDocumentBeforeChange
필드에 있는 문서 사전 이미지사전 이미지 - 변경 전의 전체 문서{ "name": "Fido", "age": 3 } fullDocument
필드에 문서 포스트이미지Postimage - 변경 직후의 전체 문서{ "name": "Fido", "age": 4 }
성능
MongoDB 버전 6.0 이상을 실행 하는 클러스터의 경우 트리거는 클러스터 내장 변경 스트림 사전 이미지 기능 을 사용합니다. 이전 버전의 MongoDB 는 사전 이미지를 oplog 에 직접 저장 합니다. 이 두 가지 모두 컬렉션 의 각 작업에 저장 및 컴퓨팅 오버헤드 를 추가하므로 쓰기 (write) 처리량 이 높은 컬렉션에 성능 문제가 발생할 수 있습니다.
문서 미리보기 이미지 활성화
데이터베이스 트리거를 구성 할 때 사전 이미지를 활성화할 수 있습니다. Document Preimage 은 trigger 구성에 대한 설정입니다. 컬렉션에 대한 문서 사전 이미지를 활성화하려면 이 옵션을 토글합니다.
사전 이미지 지원 collection 보기
문서 사전 이미지를 저장하는 collection 목록을 보려면 다음과 같이 하세요:
Linked Data Source 구성 화면으로 이동합니다.
Advanced Configuration 섹션을 확장합니다.
이 섹션에는 Preimage Preferences by Collection 테이블이 포함되어 있습니다.
이 표에는 oplog에 사전 이미지를 저장하는 모든 collection이 나열되어 있습니다. collection에 대한 사전 이미지 활성화는 모든 collection에 적용됩니다. 여기에는 다른 앱의 트리거에 연결된 컬렉션이 포함됩니다. Atlas Triggers가 없는 collection도 여기에 표시됩니다.
collection의 사전 이미지 비활성화
App Services UI에서 컬렉션 수준 사전 이미지를 비활성화할 수 있습니다.
collection의 사전 이미지를 비활성화하려면 다음을 수행합니다.
(선택 사항) collection의 Atlas Triggers에 대한 문서 사전 이미지를 비활성화합니다. 사전 이미지가 있는 Atlas Triggers는 사전 이미지를 비활성화한 후에도 계속 실행됩니다. 그러나 변경 이벤트에는
fullDocumentBeforeChange
필드가 없습니다. 여기에는 다른 App Services 앱의 Atlas Triggers가 포함됩니다.collection이 동기화된 cluster의 일부인 경우 동기화를 종료 합니다.
컬렉션별 사전 이미지 기본 설정 표를 확인합니다. 컬렉션을 보려면 Disable 버튼을 누릅니다. 이렇게 하면 해당 컬렉션의 사전 이미지가 꺼집니다.
collection이 동기화된 cluster의 일부인 경우 동기화를 다시 활성화 합니다.
경고
동기화 종료 후 동기화 복원하기
Atlas Device Sync를 종료했다가 다시 활성화하면 클라이언트가 더 이상 동기화할 수 없습니다. 동기화를 복원하려면 클라이언트가 클라이언트 재설정 핸들러를 구현해야 합니다. 이 핸들러는 동기화되지 않은 변경 사항을 삭제하거나 복구를 시도할 수 있습니다.