Azure Synapse Analytics를 사용하여 MongoDB Atlas의 운영 데이터 분석

Azure App Service
Azure Data Lake Storage
Azure Event Grid
Azure Synapse Analytics
Power BI

이 문서에서는 MongoDB Atlas 운영 데이터에서 인사이트를 파생하기 위한 솔루션을 제공합니다. 이 솔루션은 MongoDB Atlas를 Azure Synapse Analytics에 연결합니다. 연결을 사용하면 일괄 처리 및 실시간으로 데이터를 전송할 수 있습니다. 실시간 접근 방식은 Azure Synapse Analytics 전용 SQL 풀을 MongoDB Atlas 데이터 원본의 변경 내용과 동기화된 상태로 유지합니다.

Apache®, Apache Spark 및 불꽃 로고는 미국 및/또는 기타 국가에서 Apache Software Foundation의 등록 상표 또는 상표입니다. 이러한 표시의 사용은 Apache Software Foundation에 의한 보증을 암시하지 않습니다.

MongoDB Atlas 로고는 MongoDB의 상표입니다. 이 마크를 사용한다고 해서 Apache Software Foundation를 보증하지는 않습니다.

아키텍처

다음 다이어그램에서는 MongoDB Atlas 데이터를 Azure Synapse Analytics에 실시간으로 동기화하는 방법을 보여 줍니다.

MongoDB Atlas에서 분석 앱으로의 데이터 흐름을 보여 주는 아키텍처 다이어그램. 중간 단계에는 변경 스트림 API 및 Azure Synapse Analytics가 포함됩니다.

이 문서의 모든 다이어그램에 대한 PowerPoint 파일을 다운로드합니다.

데이터 흐름

이 솔루션은 MongoDB Atlas ODS(운영 데이터 저장소)의 실시간 변경 내용을 캡처하고 데이터를 동기화하는 파이프라인을 트리거하는 두 가지 옵션을 제공합니다. 다음 단계에서는 두 옵션을 모두 간략하게 설명합니다.

  1. 변경 내용은 MongoDB Atlas에 저장된 운영 및 트랜잭션 데이터에서 발생합니다. Mongo Atlas 변경 스트림 API는 구독된 애플리케이션에 변경 내용을 실시간으로 알립니다.

  2. 사용자 지정 Azure App Service 웹앱은 MongoDB 변경 스트림을 구독합니다. 웹앱에는 각 솔루션 버전에 대해 하나씩, Event Grid와 스토리지, 두 가지 버전이 있습니다. 두 앱 버전 모두 Atlas에서 삽입, 업데이트 또는 삭제 작업으로 인해 발생하는 변경 내용을 수신 대기합니다. 앱이 변경 내용을 감지하면 변경된 문서를 Azure Synapse Analytics와 통합된 Azure Data Lake Storage에 대한 BLOB으로 작성합니다. 또한 앱의 Event Grid 버전은 Atlas의 변경 사항을 감지할 때 Azure Event Grid에 새 이벤트를 만듭니다.

  3. 솔루션의 두 버전 모두 Azure Synapse Analytics 파이프라인을 트리거합니다.

    1. Event Grid 버전에서 사용자 지정 이벤트 기반 트리거는 Azure Synapse Analytics에서 구성됩니다. 이 트리거는 웹앱이 게시하는 Event Grid 토픽을 구독합니다. 해당 토픽의 새 이벤트는 Azure Synapse Analytics 트리거를 활성화하여 Azure Synapse Analytics 데이터 파이프라인을 실행합니다.
    2. 스토리지 버전에서 스토리지 기반 트리거는 Azure Synapse Analytics에서 구성됩니다. 통합 Data Lake Storage 폴더에서 새 BLOB이 검색되면 해당 트리거가 활성화되어 Azure Synapse Analytics 데이터 파이프라인이 실행됩니다.
  4. 복사 작업에서 Azure Synapse Analytics 파이프라인은 변경된 전체 문서를 Data Lake Storage BLOB에서 전용 SQL 풀로 복사합니다. 이 작업은 선택한 열에서 upsert를 수행하도록 구성됩니다. 전용 SQL 풀에 열이 있는 경우 upsert는 열을 업데이트합니다. 열이 없으면 upsert가 열을 삽입합니다.

  5. 전용 SQL 풀은 데이터 파이프라인이 업데이트하는 테이블을 호스트하는 엔터프라이즈 데이터 웨어하우징 기능입니다. 파이프라인의 데이터 복사 작업은 해당 테이블을 해당 Atlas 컬렉션과 동기화된 상태로 유지합니다.

  6. Power BI 보고서 및 시각화는 현재 및 근 실시간 분석을 표시합니다. 데이터는 다운스트림 애플리케이션에도 공급됩니다. MongoDB Atlas는 Azure Synapse Analytics 데이터 파이프라인 싱크 커넥터를 사용하여 싱크로 작동합니다. 그런 다음 Atlas는 실시간 데이터를 사용하여 사용자 지정 앱을 제공합니다.

구성 요소

  • MongoDB Atlas는 MongoDB에서 제공하는 DBaaS(Database-as-a-Service)입니다. 이 다중 클라우드 애플리케이션 데이터 플랫폼은 트랜잭션 처리, 관련성 기반 검색, 실시간 분석 및 모바일-클라우드 데이터 동기화를 제공합니다. MongoDB는 온-프레미스 솔루션인 MongoDB Enterprise Advanced도 제공합니다.

  • MongoDB Atlas의 변경 스트림은 앱이 이러한 변경 내용에 즉시 대응할 수 있도록 애플리케이션에 실시간 데이터 변경에 대한 액세스 권한을 부여합니다. 변경 스트림은 애플리케이션이 특정 컬렉션, 데이터베이스 또는 전체 배포 클러스터의 변경 내용에 대한 알림을 받을 수 있는 방법을 제공합니다.

  • App Service 및 Web Apps, Mobile Apps 및 API Apps 기능은 웹앱, 모바일 앱 및 REST API를 빌드, 배포 및 스케일링하기 위한 프레임워크를 제공합니다. 이 솔루션은 ASP.NET에서 프로그래밍된 웹앱을 사용합니다. 코드는 GitHub에서 사용할 수 있습니다.

  • Azure Synapse Analytics는 이 솔루션이 데이터 수집, 처리 및 분석에 사용하는 핵심 서비스입니다.

  • Data Lake Storage는 데이터를 저장하고 처리하는 기능을 제공합니다. Data Lake Storage는 Blob Storage를 기반으로 구축된 데이터 레이크로서, 여러 이기종 원본에서 대량의 데이터를 관리하기 위한 스케일링 가능 솔루션을 제공합니다.

  • Azure Synapse Analytics 파이프라인은 데이터에 대한 ETL(추출, 변환 및 로드) 작업을 수행하는 데 사용됩니다. Azure Data Factory는 유사한 서비스를 제공하지만 Synapse Studio 내에서 Azure Synapse Analytics 파이프라인을 만들 수 있습니다. 동일한 파이프라인 내에서 여러 작업을 사용할 수 있습니다. 종속성 엔드포인트를 만들어 한 작업을 파이프라인의 다른 활동과 연결할 수도 있습니다.

  • 매핑 데이터 흐름은 Azure Synapse Analytics에서 시각적으로 디자인된 데이터 변환입니다. 데이터 흐름을 통해 데이터 엔지니어는 코드를 작성하지 않고도 데이터 변환 논리를 개발할 수 있습니다. 결과 데이터 흐름은 스케일 아웃된 Apache Spark 클러스터를 사용하는 Azure Synapse Analytics 파이프라인 내에서 작업으로 실행될 수 있습니다. 데이터 흐름 작업은 기존 Azure Synapse Analytics 일정, 제어, 흐름, 모니터링 기능을 사용하여 운용할 수 있습니다.

  • 전용 SQL 풀은 데이터가 처리되고 정규화된 후 데이터에 대한 데이터 웨어하우징 기능을 제공합니다. Azure Synapse Analytics의 이 기능은 이전에 SQL Data Warehouse로 알려졌습니다. 전용 SQL 풀을 사용하면 최종 사용자 및 애플리케이션에서 구체화된 데이터를 사용할 수 있습니다.

  • Azure Synapse Analytics 트리거는 파이프라인을 실행하는 자동화된 방법을 제공합니다. 이러한 트리거를 예약할 수 있습니다. 스토리지 이벤트 트리거사용자 지정 이벤트 트리거와 같은 이벤트 기반 트리거도 설정할 수 있습니다. 솔루션은 두 가지 유형의 이벤트 기반 트리거를 모두 사용합니다.

  • Event Grid는 스케일링 성능이 뛰어난 서버리스 이벤트 브로커입니다. Event Grid를 사용하여 구독자 대상에 이벤트를 제공할 수 있습니다.

  • Power BI는 분석 정보를 표시하는 소프트웨어 서비스 및 앱의 컬렉션입니다. 이 솔루션에서 Power BI는 처리된 데이터를 사용하여 고급 분석을 수행하고 인사이트를 도출하는 방법을 제공합니다.

시나리오 정보

MongoDB Atlas는 많은 엔터프라이즈 애플리케이션의 운영 데이터 계층 역할을 합니다. 이 클라우드 데이터베이스는 내부 애플리케이션, 고객 지향 서비스, 그리고 여러 채널의 타사 API에서 제공되는 데이터를 저장합니다. Azure Synapse Analytics 파이프라인을 사용하면 MongoDB Atlas 데이터를 다른 기존 애플리케이션의 관계형 데이터 및 로그와 같은 구조화되지 않은 데이터와 결합할 수 있습니다.

Batch 통합

Azure Synapse Analytics에서는 MongoDB 온-프레미스 인스턴스와 MongoDB Atlas를 원본 또는 싱크 리소스로 원활하게 통합할 수 있습니다. MongoDB는 Azure Synapse Analytics 및 Data Factory에 대한 원본 및 싱크 커넥터가 있는 유일한 NoSQL 데이터베이스입니다.

기록 데이터를 사용하면 모든 데이터를 한 번에 검색할 수 있습니다. 일괄 처리 모드에서 필터를 사용하여 특정 기간 동안 데이터를 증분 방식으로 검색할 수도 있습니다. 그런 다음 Azure Synapse Analytics에서 SQL 풀 및 Apache Spark 풀을 사용하여 데이터를 변환하고 분석할 수 있습니다. 분석 또는 쿼리 결과를 분석 데이터 저장소에 저장해야 하는 경우 Azure Synapse Analytics에서 싱크 리소스를 사용할 수 있습니다.

소비자의 데이터를 Azure Synapse Analytics 및 MongoDB 데이터 스토리지에 연결하는 원본 및 싱크 커넥터를 보여 주는 아키텍처 다이어그램.

커넥터를 설치하고 구성하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.

원본 커넥터는 MongoDB 또는 Atlas에 저장되는 운영 데이터를 기반으로 Azure Synapse Analytics를 실행하는 편리한 방법을 제공합니다. 원본 커넥터를 사용하여 Atlas에서 데이터를 검색한 후 데이터를 Parquet, Avro, JSON, 텍스트 또는 CSV 파일로 Data Lake Storage BLOB 스토리지에 로드할 수 있습니다. 그런 다음 이러한 파일을 변환하거나 다중 데이터베이스, 다중 클라우드 또는 하이브리드 클라우드 환경에 있는 다른 데이터 원본의 다른 파일과 조인할 수 있습니다.

다음 시나리오에서는 MongoDB Enterprise Advanced 또는 MongoDB Atlas에서 검색하는 데이터를 사용할 수 있습니다.

  • MongoDB에서 특정 날짜의 모든 데이터를 일괄 처리로 검색합니다. 그런 다음 데이터를 Data Lake Storage에 로드합니다. 여기에서 분석을 위해 서버리스 SQL 풀 또는 Spark 풀을 사용하거나 데이터를 전용 SQL 풀에 복사합니다. 이 일괄 처리를 검색한 후 데이터 흐름에 설명된 대로 변경 내용이 발생할 때 이를 데이터에 적용할 수 있습니다. Storage-CopyPipeline_mdb_synapse_ded_pool_RTS 샘플 파이프라인을 이 솔루션의 일부로 사용할 수 있습니다. 이 일회성 로드 목적으로 GitHub에서 파이프라인을 내보낼 수 있습니다.

  • 매일 또는 시간별 보고서의 경우처럼, 특정 빈도로 인사이트를 생성합니다. 이 시나리오에서는 분석 파이프라인을 실행하기 전에 정기적으로 데이터를 검색하도록 파이프라인을 예약합니다. MongoDB 쿼리를 사용하여 필터 조건을 적용하고 특정 데이터 하위 집합만 검색할 수 있습니다.

실시간 동기화

기업은 부실 데이터가 아닌 실시간 데이터를 기반으로 하는 인사이트가 필요합니다. 인사이트 제공이 몇 시간 지연되면 의사 결정 프로세스가 지연되어 경쟁 우위를 잃을 수 있습니다. 이 솔루션은 MongoDB 트랜잭션 데이터베이스에서 발생하는 변경 내용을 전용 SQL 풀에 실시간으로 전파하여 중요한 의사 결정을 내릴 수 있도록 합니다.

이 솔루션에는 세 부분이 있으며, 이는 다음 섹션에서 설명합니다.

MongoDB Atlas 변경 내용 캡처

MongoDB 변경 스트림은 데이터베이스에서 발생하는 변경 내용을 캡처합니다. 변경 스트림 API를 통해 변경 내용에 대한 정보를 변경 스트림을 구독하는 App Service 웹앱에 사용할 수 있습니다. 이러한 앱은 Data Lake Storage BLOB 스토리지에 변경 내용을 씁니다.

Azure Synapse Analytics에 변경 내용을 전파하는 파이프라인 트리거

이 솔루션은 BLOB이 Data Lake Storage에 작성되 후 Azure Synapse Analytics 파이프라인을 트리거하는 두 가지 옵션을 제공합니다.

  • 스토리지 기반 트리거. 변경 내용이 있는 BLOB이 작성되는 즉시 파이프라인이 트리거되므로 실시간 분석이 필요한 경우 이 옵션을 사용합니다. 그러나 많은 양의 데이터 변경 내용이 있을 경우 이 옵션은 기본 설정 방법이 아닐 수 있습니다. Azure Synapse Analytics는 동시에 실행할 수 있는 파이프라인 수를 제한합니다. 많은 수의 데이터 변경 내용이 있는 경우 해당 제한에 도달할 수 있습니다.

  • 이벤트 기반 사용자 지정 트리거. 이러한 유형의 트리거는 Azure Synapse Analytics 외부에 있다는 이점이 있으므로, 제어하기가 더 쉽습니다. 웹앱의 Event Grid 버전은 변경된 데이터 문서를 BLOB 스토리지에 씁니다. 동시에 앱은 새 Event Grid 이벤트를 만듭니다. 이벤트의 데이터에는 BLOB의 파일 이름이 포함됩니다. 이벤트가 트리거하는 파이프라인은 파일 이름을 매개 변수로 받은 다음, 파일을 사용하여 전용 SQL 풀을 업데이트합니다.

전용 SQL 풀에 변경 내용 전파

Azure Synapse Analytics 파이프라인은 변경 내용을 전용 SQL 풀에 전파합니다. 이 솔루션은 Data Lake Storage에서 Blob의 변경 내용을 전용 SQL 풀에 복사하는 GitHub의 CopyPipeline_mdb_synapse_ded_pool_RTS 파이프라인을 제공합니다. 이 파이프라인은 스토리지 또는 Event Grid 트리거에 의해 트리거됩니다.

잠재적인 사용 사례

이 솔루션의 사용 사례는 여러 산업 및 영역에 걸쳐 있습니다.

  • Retail

    • 제품 번들링 및 제품 프로모션에 인텔리전스 빌드
    • IoT 스트리밍을 사용하는 콜드 스토리지 최적화
    • 재고 보충 최적화
    • 옴니채널 배포에 값 추가
  • 은행 및 금융 업무

    • 고객 금융 서비스 사용자 지정
    • 사기 가능성이 있는 트랜잭션 검색
  • 전자 통신

    • 차세대 네트워크 최적화
    • 경계 네트워크 값 최대화
  • 자동차

    • 연결된 차량의 매개 변수화 최적화
    • 연결된 차량의 IoT 통신에서 변칙 검색
  • 제조업

    • 기계류에 대한 예측 유지 관리 제공
    • 스토리지 및 재고 관리 최적화

다음은 두 가지 구체적인 예입니다.

  • 이 문서에서는 Batch 통합의 앞부분에서 설명하듯이, MongoDB 데이터를 일괄 처리로 검색한 다음 변경 내용이 발생할 때 데이터를 업데이트할 수 있습니다. 이 기능을 통해 실시간 인사이트를 얻어 적시에 결정을 하고 결론을 내릴 수 있습니다. 이 기능은 금융 거래 및 사기 탐지 데이터와 같은 민감하고 중요한 정보를 분석하는 데 유용합니다.
  • Batch 통합에서 설명하듯이, 정기적으로 MongoDB 데이터를 검색하도록 파이프라인을 예약할 수 있습니다. 이 기능은 일일 판매 데이터로 재고 수준을 업데이트하는 것과 같은 소매 시나리오에서 유용합니다. 이러한 경우 분석 보고서와 대시보드는 중요하지 않으며 실시간 분석은 그다지 필요하지 않습니다.

다음 섹션에서는 두 가지 소매 산업 사용 사례를 자세히 살펴봅니다.

제품 번들링

제품 판매를 홍보하기 위해 다른 관련 제품과 함께 번들의 일부로 제품을 판매할 수 있습니다. 목표는 판매 패턴 데이터를 사용하여 제품을 패키지에 묶기 위한 전략을 개발하는 것입니다.

두 가지 데이터 원본이 있습니다.

  • MongoDB의 제품 카탈로그 데이터
  • Azure SQL 판매 데이터

두 데이터 집합 모두 Azure Synapse Analytics 파이프라인을 사용하여 Azure Synapse Analytics 전용 SQL 풀로 마이그레이션됩니다. 트리거 및 변경 데이터 캡처는 일회성 마이그레이션된 데이터를 기반으로 근 실시간 데이터 동기화를 달성하는 데 사용됩니다.

다음 Power BI 차트는 제품과 판매 패턴 간의 선호도를 보여 줍니다. 펜과 잉크 기반 리필의 선호도가 높습니다. 판매 데이터에 따르면 지정된 영역에서 펜의 판매량이 높습니다.

제품, 연도, 지역 및 선호도별 펜 판매를 보여 주는 파이프라인 단계와 차트를 보여 주는 다이어그램. 펜 판매량은 2022년 남부에서 가장 높습니다.

이 분석은 매출 향상을 위한 두 가지 제안을 합니다.

  • 펜과 잉크 기반 리필 묶기
  • 특정 영역에서 번들 홍보

제품 홍보

제품 판매를 홍보하기 위해 관련 제품에 관심이 있는 고객에게 제품을 추천할 수 있습니다. 목표는 판매 데이터 및 고객의 구매 패턴 데이터를 사용하여 고객에게 제품을 추천하기 위한 전략을 개발하는 것입니다.

Azure Synapse Analytics를 사용하여 AI 및 기계 학습 모델을 개발하여 고객에게 추천할 제품을 결정할 수 있습니다.

다음 다이어그램에서는 다양한 유형의 데이터를 사용하여 대체 추천 제품을 결정하는 모델을 만드는 방법을 보여 줍니다. 데이터에는 고객 구매 패턴, 수익, 제품 친화성, 제품 판매량 및 제품 카탈로그 매개 변수가 포함됩니다.

AI 모델에 대한 파이프라인 단계 및 워크플로를 보여 주는 다이어그램. 데이터 필드에는 고객 ID, 가격, 판매 및 수익이 포함됩니다.

모델이 높은 정확도를 달성하는 경우 고객에게 추천할 수 있는 제품 목록을 제공합니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

솔루션에 있는 Azure 구성 요소의 보안 요구 사항 및 제어에 대한 자세한 내용은 각 제품 설명서의 보안 섹션을 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

  • Azure 제품 및 구성의 비용을 예상하려면 Azure 가격 계산기를 사용합니다.
  • Azure는 요구 사항에 올바른 리소스 수를 식별하고, 시간 경과에 따른 지출을 분석하고, 초과 지출 없이 비즈니스 요구 사항을 충족하도록 스케일링하여 불필요한 비용을 방지하는 데 도움이 됩니다. 예를 들어 로드가 필요하지 않은 경우 전용 SQL 풀을 일시 중지할 수 있습니다. 나중에 다시 시작할 수 있습니다.
  • App Service를 Azure Functions로 바꿀 수 있습니다. Azure Synapse Analytics 파이프라인 내에서 함수를 오케스트레이션하면 비용을 절감할 수 있습니다.
  • Spark 클러스터 비용을 줄이려면 올바른 데이터 흐름 컴퓨팅 유형을 선택합니다. 일반 및 메모리 최적화 옵션을 사용할 수 있습니다. 또한 적절한 코어 수와 TTL(Time to Live) 값을 선택합니다.
  • 주요 솔루션 구성 요소의 비용을 관리하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.

성능 효율성

성능 효율성은 사용자가 요구하는 요구 사항을 효율적인 방식으로 충족하기 위해 워크로드의 크기를 조정할 수 있는 기능입니다. 자세한 내용은 성능 효율성 핵심 요소 개요를 참조하세요.

많은 양의 변경 내용이 있는 경우 컬렉션의 모든 변경에 대해 Azure Synapse Analytics에서 수천 개의 파이프라인을 실행하면 대기 중인 파이프라인의 백로그가 발생할 수 있습니다. 이 시나리오에서 성능을 향상시키려면 다음 접근 방식을 고려하세요.

  • Data Lake Storage의 변경 내용이 포함된 JSON 문서를 작성하는 스토리지 기반 App Service 코드를 사용합니다. 스토리지 기반 트리거를 파이프라인과 연결하지 마세요. 대신 짧은 간격(예: 2~5분마다)으로 예약된 트리거를 사용합니다. 예약된 트리거가 실행되면 지정된 Data Lake Storage 디렉터리의 모든 파일을 가져와서 각 파일에 대한 전용 SQL 풀을 업데이트합니다.
  • Event Grid App Service 코드를 수정합니다. 파일 이름을 포함하는 메타데이터를 사용하여 이벤트에 새 토픽을 추가하기 전에 BLOB 스토리지에 약 100개 변경 내용의 마이크로 일괄 처리를 추가하도록 프로그래밍합니다. 이 수정을 사용하면 100개의 변경 내용이 있는 하나의 BLOB에 대해 하나의 파이프라인만 트리거합니다. 시나리오에 맞게 마이크로 일괄 처리 크기를 조정할 수 있습니다. 작은 마이크로 일괄 처리를 높은 빈도로 사용하여 실시간에 가까운 업데이트를 제공합니다. 또는 업데이트 지연 및 오버헤드 감소를 위해 더 낮은 빈도로 더 큰 마이크로 일괄 처리를 사용합니다.

Azure Synapse Analytics 파이프라인 복사 작업의 성능 및 스케일링 성능 향상에 대한 자세한 내용은 복사 작업 성능 및 스케일링 성능 가이드를 참조하세요.

시나리오 배포

이 솔루션을 구현하는 방법에 대한 자세한 내용은 Synapse와 MongoDB Atlas 통합을 위한 실시간 동기화 솔루션을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계

솔루션에 대한 자세한 내용은 partners@mongodb.com에 문의하세요.

MongoDB에 대한 자세한 내용은 다음 리소스를 참조하세요.

Azure 솔루션 구성 요소에 대한 정보는 다음 리소스를 참조하세요.