MongoDB용 Openflow 커넥터 소개
MongoDB용 Openflow 커넥터 소개
이 문서에서는 MongoDB용 Openflow 커넥터의 기본 개념, 워크플로, 제한 사항을 설명합니다. 이 커넥터는 MongoDB 데이터베이스를 Snowflake에 연결하고 선택한 컬렉션의 데이터를 일정에 따라 복제합니다.
출처: Snowflake 문서
본문
MongoDB용 Openflow 커넥터는 MongoDB 데이터베이스를 Snowflake에 연결하고 선택한 컬렉션의 데이터를 일정에 따라 복제합니다. 커넥터는 각 컬렉션에 대해 초기 전체 로드(full load)를 수행한 뒤, MongoDB change streams를 사용해 증분 업데이트를 수행합니다.
사용 사례
커넥터는 다음 사용 사례를 지원합니다.
- Snowflake로의 복제: MongoDB의 컬렉션을 다운스트림 분석과 모델링을 위해 Snowflake로 지속적으로 미러링합니다. 증분 변경은 몇 분의 지연 창으로 일정에 따라 도착합니다.
- 선택적 복제: 이름이나 정규식 필터를 사용해 포함할 컬렉션을 정의해, 넓은 범위를 통제된 상태로 커버할 수 있습니다.
- 마이그레이션 및 변경 캡처: 마이그레이션을 위해 1회성 스냅샷 로드를 수행한 뒤, MongoDB change streams를 사용한 증분 동기화로 컬렉션을 동기화 상태로 유지합니다.
제한 사항
커넥터에는 다음 제한 사항이 있습니다.
- 독립(Standalone) MongoDB 인스턴스는 지원되지 않습니다. 커넥터는 변경을 추적하기 위해 MongoDB oplog(operations log)에 의존합니다. MongoDB oplog는 Replica Set 또는 Sharded Cluster 환경에서만 사용할 수 있습니다.
- 지원되는 MongoDB 최소 버전은 4.4입니다.
- 커넥터는 MongoDB에 대한 사용자 이름·비밀번호 인증만 지원합니다.
Snowflake 테이블 구조
커넥터는 MongoDB 문서를 해당 Snowflake 테이블에 매핑합니다. 문서의 전체 페이로드는 data 필드에 저장됩니다.
| Snowflake 열 | 설명 |
|---|---|
| id | MongoDB 문서의 ID |
| data | 문서의 페이로드 |
컬렉션 복제 수명 주기
컬렉션의 복제 주기는 초기 스냅샷으로 시작해 증분 동기화로 전환됩니다.
- Snowflake 테이블 생성: 커넥터가 Snowflake에 테이블을 만듭니다. 테이블 구조는 각 컬렉션에 대해 동일합니다. 자세한 내용은 'Snowflake 테이블 구조'를 참조하세요.
- 스냅샷 로드: Snowflake에 테이블을 만든 뒤 커넥터는 MongoDB 컬렉션의 기존 데이터 전체를 Snowflake 테이블로 복사합니다. 이 과정은 구성의 각 컬렉션에 대해 순차적으로 실행됩니다.
- 증분 동기화: 초기 로드가 완료되면 컬렉션은 증분 동기화 모드로 들어갑니다. 커넥터는 MongoDB change stream을 들어 컬렉션에 축적된 저널 문서 수준 변경(insert, update, delete)을 읽습니다. 그런 다음 이 변경을 Snowflake의 목적지 테이블에 병합합니다.
Openflow 요구 사항
런타임 크기는 최소한 Medium이어야 합니다. 높은 처리량 워크로드나 큰 컬렉션 복제에는 Large를 사용하세요.
- 커넥터는 다중 노드 Openflow 런타임을 지원하지 않습니다. 이 커넥터의 런타임은 Min nodes와 Max nodes를 1로 설정해 구성하세요.
커넥터용 웨어하우스 생성에 대한 정보는 'Set up the target Snowflake account'를 참조하세요.
워크플로
MongoDB용 Openflow 커넥터의 워크플로는 MongoDB 관리자와 Snowflake 관리자가 수행하는 단계를 포함합니다.
MongoDB 관리자
MongoDB 관리자는 다음 작업을 수행합니다.
- 복제 활성화: MongoDB 관리자는 replica set 또는 sharded cluster를 구성합니다.
- oplog 크기가 충분한지 확인: 대용량 데이터 수집의 경우 MongoDB 관리자는 oplogSizeMB가 커넥터 또는 연결 중단 동안의 변경 내역을 보존할 만큼 충분히 큰지 확인해야 합니다. 커넥터가 Oplog 보존 기간보다 오래 오프라인이면 데이터의 전체 재동기화가 필요할 수 있습니다.
replication:
replSetName: "myReplicaSet"
oplogSizeMB: 51200
- 데이터베이스 사용자 생성: MongoDB 관리자는 데이터베이스의 변경을 모니터링하는 데 필요한 역할을 가진 사용자를 만듭니다. 사용자에게 admin 데이터베이스에 대한 readAnyDatabase 역할이 필요합니다.
- 네트워크 접근 구성: MongoDB 관리자는 MongoDB에서 Openflow Runtime으로의 네트워크 접근을 구성합니다.
Snowflake 관리자
Snowflake 관리자는 다음 작업을 수행합니다.
- 서비스 사용자, 웨어하우스, 목적지 데이터베이스 생성: 관리자는 복제된 데이터를 위한 필수 Snowflake 객체를 만듭니다.
- 커넥터 정의 파일 가져오기: 관리자는 파일을 Snowflake Openflow 캔버스로 가져옵니다.
- 플로우 구성: 관리자는 필요한 MongoDB와 Snowflake 파라미터로 플로우를 구성합니다.
- 플로우 실행: 관리자는 플로우를 실행합니다.
다음 단계
소스 MongoDB 데이터베이스와 대상 Snowflake 계정 구성에 대한 정보는 'Connect to MongoDB'를 참조하세요.