문서 메뉴
문서 홈
/
MongoDB 아틀라스
/

Atlas Stream Processing 개요

이 페이지의 내용

  • Streaming Data
  • 아키텍처
  • 스트림 프로세서의 구조
  • 체크포인트
  • 데드 레터 대기열
  • 다음 단계

Atlas Stream Processing을 사용하면 Atlas 데이터베이스에서 사용되는 것과 동일한 쿼리 API 를 사용하여 복잡한 데이터의 스트림을 처리할 수 있습니다. Atlas Stream Processing을 사용하면 다음을 수행할 수 있습니다.

  • 집계 파이프라인 을 빌드하여 배치 처리 고유의 지연 없이 스트리밍 데이터에서 지속적으로 작동합니다.

  • 지속적인 스키마 유효성 검사 를 수행하여 메시지가 올바르게 구성되었는지 확인하고, 메시지 손상을 감지하고, 늦게 도착하는 데이터를 감지합니다.

  • 결과를 Atlas 컬렉션 또는 Apache Kafka 에 지속적으로 게시 클러스터를 생성하여 데이터에 대한 최신 보기와 분석을 보장합니다.

Atlas Stream Processing 구성 요소는 Atlas 프로젝트에 직접 속하며 Atlas 클러스터와 독립적으로 작동합니다.

스트림은 하나 이상의 소스에서 발생하는 데이터의 연속적인 흐름을 말하는 것으로, 추가 전용 로그의 형태를 취합니다. 데이터 스트림의 예로는 센서의 온도 또는 압력 판독 값, 금융 트랜잭션 기록, 변경 데이터 수집 이벤트 등이 있습니다.

데이터 스트림은 Apache Kafka 와 같은 소스 에서 시작됩니다.또는 변경 스트림 . 그런 다음 처리된 데이터를 Apache Kafka 와 같은 싱크 에 쓸 수 있습니다. 또는 Atlas 컬렉션.

데이터 스트림은 상태가 빠르게 변화하는 시스템에서 시작됩니다. Atlas Stream Processing은 미사용 데이터베이스의 시간 및 계산 제약 없이 연속 데이터를 처리할 수 있는 네이티브 스트림 처리 기능을 제공합니다.

Atlas Stream Processing의 핵심 추상화는 스트림 프로세서입니다. 스트림 프로세서는 지정된 소스의 스트리밍 데이터에서 지속적으로 작동하고 출력을 싱크에 쓰는 MongoDB 집계 파이프라인 쿼리입니다. 자세한 내용 은 스트림 프로세서의 구조를 참조하세요.

스트림 처리는 스트림 처리 인스턴스에서 발생합니다. 각 스트림 처리 인스턴스는 다음을 연결하는 Atlas 네임스페이스입니다.

  • 스트림 프로세서를 실행하는 데 필요한 RAM과 CPU를 제공하는 하나 이상의 작업자입니다.

  • 클라우드 공급자 및 클라우드 리전.

  • 스트리밍 데이터의 사용 가능한 소스 및 싱크 목록을 저장하는 연결 레지스트리입니다.

  • 사용자 권한 부여를 정의하는 보안 컨텍스트.

  • Atlas Stream Processing 인스턴스 자체에 대한 연결 string 입니다.

스트림 프로세서를 정의하면 해당 스트림 프로세서를 정의한 스트림 처리 인스턴스에서만 사용할 수 있게 됩니다. 각 작업자는 실행 중인 스트림 프로세서를 최대 4개까지 호스팅할 수 있으며, 필요에 따라 작업자를 프로비저닝하여 스트림 프로세서를 시작할 때 Atlas Stream Processing 인스턴스가 자동으로 확장됩니다. 작업자의 모든 스트림 프로세서를 중지하여 작업자의 프로비저닝을 해제할 수 있습니다. Atlas Stream Processing은 항상 새 작업자를 프로비저닝하는 것보다 기존 작업자에 스트림 프로세서를 할당하는 것을 선호합니다.

예제

이름이 proc01 ~ proc08 인 8개의 스트림 프로세서를 실행하는 Atlas Stream Processing 인스턴스가 있습니다. proc01 ~ proc04 는 한 작업자에서 실행되고 proc05 ~ proc08 는 두 번째 작업자에서 실행됩니다. proc09 이라는 새 스트림 프로세서를 시작합니다. Atlas Stream Processing은 proc09 을(를) 호스팅할 세 번째 작업자를 프로비저닝합니다.

나중에 첫 번째 작업자에서 proc03을 중지합니다. proc09를 중지하고 다시 시작하면 Atlas Stream Processing은 proc09를 첫 번째 작업자에 재할당하고 세 번째 작업자의 프로비저닝을 해제합니다.

proc09 을 중지했다가 다시 시작하기 전에 proc10 이라는 새 스트림 프로세서를 시작하면 Atlas Stream Processing은 이전에 proc03 에 할당된 슬롯의 첫 번째 작업자에 proc10 을 할당합니다.

확장 시 Atlas Stream Processing은 현재 실행 중인 스트림 프로세서의 수만 고려하며 실행 중이 아닌 정의된 스트림 프로세서는 계산하지 않습니다. 스트림 처리 인스턴스의 계층은 작업자의 RAM 및 CPU 할당을 결정합니다.

연결 레지스트리는 하나 이상의 연결을 저장합니다. 각 연결은 스트림 프로세서가 외부 서비스와 상호 작용할 수 있도록 하는 네트워킹 및 보안 세부 정보의 조합에 이름을 할당합니다. 연결은 다음과 같은 동작을 나타냅니다.

  • 지정된 스트림 처리 인스턴스의 연결 레지스트리에 정의된 연결만 해당 스트림 처리 인스턴스에서 호스팅되는 스트림 프로세서에 서비스를 제공할 수 있습니다.

  • 각 연결은 임의의 수의 스트림 프로세서를 제공할 수 있습니다.

  • 단일 연결만 지정된 스트림 프로세서의 소스 역할을 할 수 있습니다.

  • 단일 연결만 지정된 스트림 프로세서의 싱크 역할을 할 수 있습니다.

  • 연결은 원래 소스또는 싱크로 정의되지 않습니다. 지정된 연결은 스트림 프로세서가 해당 연결을 호출하는 방식에 따라 두 가지 기능을 모두 수행할 수 있습니다.

Atlas Stream Processing 은 멀티 테넌트 인프라의 전용 고객 컨테이너에서 Atlas Stream Processing 작업자를 실행합니다. MongoDB 보안 및 컴플라이언스에 대한 자세한 내용은 MongoDB 보안 센터를 참조하세요.

스트림 프로세서는 집계 파이프라인의 형태를 취합니다. 각 프로세서는 소스에 연결되어 문서 형태의 지속적인 데이터 스트림을 수신하기 시작하는 $source 단계로 시작합니다. 이러한 문서는 유효한 json 또는 ejson 이어야 합니다. $source 이후의 각 애그리게이션 단계는 스트림의 각 레코드를 차례로 소비하며 세 가지 유형으로 그룹화할 수 있습니다.

  • 유효성 검사 : $validate 단계에서는 수집된 문서에 스키마 유효성 검사를 수행하여 올바른 형식의 문서만 추가 처리를 계속 진행하고 형식이 잘못된 문서는 어떻게 되는지 확인할 수 있습니다. 유효성 검사는 선택 사항입니다.

  • 상태 비저장 연산: 들어오는 데이터 스트림에 직접 작동할 수 있는 집계 단계 또는 연산자. 이러한 집계는 각 문서를 차례로 사용, 변환, 전달하며 $source$emit 또는 $merge 단계 사이의 어느 시점에서든 나타날 수 있습니다.

  • 상태 저장 작업 : 제한된 문서 집합에서만 작동할 수 있는 애그리게이션 단계 또는 연산자입니다. 이러한 애그리게이션은 전체 문서 세트를 한 번에 소비, 변환 및 전달하며 창 내부에만 나타날 수 있습니다.

Windows는 스트리밍 데이터를 소비하고 시간으로 구분된 세트로 분할하여 $group$avg 와 같이 무한 데이터에 적용할 수 없는 단계와 연산자를 적용할 수 있도록 하는 파이프라인 단계입니다. 각 스트림 프로세서에는 하나의 윈도우 단계만 있을 수 있습니다.

스트림 프로세서는 수집된 데이터를 처리한 후 $emit 단계를 사용하는 스트리밍 데이터 플랫폼 또는 $merge 단계의 Atlas 데이터베이스에 데이터를 씁니다. 이러한 단계는 서로 상호 배타적이며, 스트림 프로세서는 이러한 단계를 하나만 가질 수 있습니다.

Atlas Stream Processing은 체크포인트 문서를 사용하여 스트림 프로세서의 상태를 캡처합니다. 이러한 문서에는 고유 ID가 있으며 스트림 프로세서 로직의 흐름이 적용됩니다. 스트림 프로세서의 마지막 연산자가 체크포인트 문서에 대한 작업을 마치면 Atlas Stream Processing은 체크포인트를 커밋하여 두 가지 유형의 레코드를 생성합니다.

  • 체크포인트 ID와 해당 ID가 속한 스트림 프로세서의 유효성을 검사하는 단일 레코드.

  • Atlas Stream Processing이 체크포인트를 커밋하는 순간 관련 스트림 프로세서의 각 상태 저장 작업의 상태를 설명하는 레코드 집합입니다.

중단 후 스트림 프로세서를 다시 시작하면 Atlas Stream Processing은 마지막으로 커미트된 체크포인트를 쿼리하고 명시된 상태부터 작업을 재개합니다.

Atlas Stream Processing은 Atlas 데이터베이스 collection을 데드 레터 큐 (DLQ)로 사용할 수 있도록 지원합니다. Atlas Stream Processing이 데이터 스트림의 문서를 처리할 수 없는 경우 처리 실패에 대한 세부 정보와 함께 문서 내용을 DLQ에 씁니다. 스트림 프로세서 정의에서 collection을 DLQ로 할당할 수 있습니다.

자세한 내용 은 스트림 프로세서 생성을 참조하세요.

핵심 Atlas Stream Processing 개념에 대한 자세한 내용은 다음을 읽어보세요.

← Atlas Stream Processing