MongoDB Atlas와 Google Cloud 간의 데이터 변환

Last reviewed 2023-12-13 UTC

많은 기업에서 MongoDB를 운영 데이터 스토어로 사용하고 복잡한 분석을 수행하여 해당 데이터의 가치를 강화하려고 합니다. 이렇게 하려면 MongoDB 데이터를 집계하여 분석을 실행할 수 있는 데이터 웨어하우스로 이동해야 합니다. 이 참조 아키텍처에서는 Google Cloud에서 이 통합 파이프라인을 구성하는 방법을 설명합니다.

이 아키텍처에서는 Dataflow 템플릿을 사용하여 MongoDB Atlas의 데이터를 BigQuery에 통합합니다. 이러한 Dataflow 템플릿은 MongoDB에서 사용하는 문서 형식을 BigQuery에서 사용하는 열 형식으로 변환합니다. 이러한 템플릿은 Apache Beam 라이브러리를 사용하여 이 변환을 실행합니다. 따라서 이 문서에서는 사용자가 MongoDB에 익숙하고 Dataflow 및 Apache Beam에 어느 정도 익숙하다고 가정합니다.

아키텍처

다음 다이어그램은 이 솔루션을 배포할 때 사용하는 참조 아키텍처를 보여줍니다. 이 다이어그램은 다양한 Dataflow 템플릿이 MongoDB에서 BigQuery 데이터 웨어하우스로 데이터를 이동하고 변환하는 방법을 보여줍니다.

MongoDB Atlas와 Google Cloud 간의 데이터 변환을 위한 아키텍처

다이어그램에서 볼 수 있듯이 이 아키텍처는 다음 세 가지 템플릿을 기반으로 합니다.

  • MongoDB to BigQuery 템플릿. 이 Dataflow 템플릿은 MongoDB에서 문서를 읽고 BigQuery에 쓰는 일괄 파이프라인으로, BigQuery에서 데이터를 분석할 수 있습니다. 원하는 경우 JavaScript에서 사용자 정의 함수(UDF)를 작성하여 이 템플릿을 확장할 수 있습니다. 샘플 UDF는 운영 효율성을 참고하세요.
  • BigQuery to MongoDB 템플릿. 이 Dataflow 템플릿은 BigQuery에서 분석된 데이터를 읽고 MongoDB에 쓸 수 있는 일괄 템플릿입니다.
  • MongoDB to BigQuery(CDC) 템플릿. 이 Dataflow 템플릿은 MongoDB 변경 내역에서 작동하는 스트리밍 파이프라인입니다. MongoDB 변경 스트림에서 Pub/Sub로 변경사항을 푸시하는 게시자 애플리케이션을 만듭니다. 그런 다음 파이프라인은 Pub/Sub에서 JSON 레코드를 읽고 BigQuery에 씁니다. MongoDB to BigQuery 템플릿과 마찬가지로 UDF를 작성하여 이 템플릿을 확장할 수 있습니다.

    MongoDB to BigQuery(CDC) 템플릿을 사용하여 MongoDB 컬렉션에서 발생하는 모든 변경사항이 Pub/Sub에 게시되도록 할 수 있습니다. MongoDB 변경 내역을 설정하려면 MongoDB 문서의 변경 내역에 있는 안내를 따르세요.

사용 사례

BigQuery를 사용하여 MongoDB Atlas 데이터를 분석하면 금융 서비스, 소매, 제조 및 물류, 게임 애플리케이션을 비롯한 다양한 업계에서 유용하게 사용할 수 있습니다.

금융 서비스

Google Cloud와 MongoDB Atlas는 오늘날 금융 기관의 복잡하고 변화하는 데이터 요구사항을 처리하는 솔루션을 제공합니다. BigQuery를 사용하여 MongoDB Atlas의 재무 데이터를 분석하면 다음 작업을 위한 솔루션을 개발할 수 있습니다.

  • 실시간 사기 감지 금융 기관은 실시간으로 허위성 거래를 감지하고 방지하려고 합니다. 머신러닝(ML)을 사용하고 BigQuery에서 고객 행동 데이터를 분석하면 사기를 나타내는 패턴을 식별할 수 있습니다.
  • 맞춤형 고객 경험. 금융 기관은 맞춤형 고객 환경을 제공하는 데에도 관심이 있습니다. BigQuery에 고객 데이터를 저장하고 분석하여 맞춤 추천을 생성하고, 맞춤형 제품 및 서비스를 제공하고, 더 나은 고객지원을 제공하는 솔루션을 만들 수 있습니다.
  • 리스크 관리. 금융 기관은 항상 위험을 식별하고 완화하는 데 도움이 되는 절차를 원합니다. BigQuery에서 다양한 소스의 데이터를 분석하면 잠재적 위험을 나타내는 패턴과 동향을 파악하는 데 도움이 됩니다.

Retail

고객 데이터를 스마트 데이터 사용과 제품 데이터 및 실시간 맞춤형 참여와 결합하여 미래 전자상거래를 정의합니다. 소매업체는 고객의 요구사항을 충족하기 위해 데이터를 수집하고 분석하여 데이터 기반의 의사결정을 내릴 필요가 있습니다. BigQuery와 MongoDB Atlas를 사용하면 고객 데이터를 활용하여 다음과 같은 영역에서 맞춤설정의 혁신을 이룰 수 있습니다.

  • 옴니채널 상거래. MongoDB를 사용하여 온라인 및 오프라인 상점, 모바일 앱, 소셜 미디어 등 다양한 소스의 데이터를 저장하고 관리하세요. 이러한 데이터 저장소 및 관리 기능을 BigQuery 분석과 결합하면 모든 채널에서 고객에게 원활한 환경을 제공해야 하는 옴니채널 소매업체에 적합합니다.
  • 실시간 통계. BigQuery를 사용하면 고객, 인벤토리, 판매 실적에 대한 실시간 통계를 얻을 수 있습니다. 이러한 통계는 가격 책정, 프로모션, 간접 광고에 대해 보다 나은 결정을 내리는 데 도움이 됩니다.
  • 맞춤 추천. 맞춤 추천 엔진을 통해 소매업체가 판매와 고객 만족도를 높일 수 있습니다. 고객 데이터를 저장 및 분석하여 각 개별 고객이 관심을 가질 만한 제품을 추천하는 데 사용할 수 있는 패턴과 트렌드를 식별할 수 있습니다.

제조 및 물류

BigQuery에서 MongoDB 데이터를 분석하면 제조 및 물류 업계에도 다음과 같은 이점이 있습니다.

  • 실시간 정보 파악. 작업에 대해 실시간으로 파악할 수 있습니다. 이를 통해 생산, 인벤토리, 배송에 관해 더 나은 결정을 내릴 수 있습니다.
  • 공급망 최적화. 공급망 불확실성을 관리하고 다양한 소스의 데이터를 분석하면 비용을 절감하고 효율성을 개선할 수 있습니다.

게임

또한 BigQuery의 분석을 통해 게임 개발자와 게임 제작자는 최신 게임을 만들고 다음과 같은 탁월한 게임 환경을 제공할 수 있습니다.

  • 실시간 게임플레이 분석을 사용하여 실시간 게임플레이 환경을 만들어 리더보드, 매치메이커 시스템, 멀티플레이어 기능을 생성할 수 있습니다.
  • 맞춤형 플레이어 환경 인공지능(AI)과 ML을 사용하여 타겟팅된 추천을 제공하고 플레이어에게 게임 환경을 맞춤설정할 수 있습니다.
  • 게임 분석. 게임 데이터를 분석하여 게임 설계, 게임플레이, 비즈니스 결정을 개선하는 데 도움이 되는 동향과 패턴을 파악할 수 있습니다.

설계 대안

Dataflow 템플릿을 MongoDB에서 BigQuery로의 통합 파이프라인으로 사용하는 방법에는 두 가지가 있습니다. BigQuery 구독을 사용하는 Pub/Sub 또는 Confluent Cloud입니다.

BigQuery 구독을 사용하는 Pub/Sub

Dataflow 템플릿을 사용하는 대신 Pub/Sub를 사용하여 MongoDB 클러스터와 BigQuery 간에 통합 파이프라인을 설정할 수 있습니다. Dataflow 대신 Pub/Sub를 사용하려면 다음 단계를 따르세요.

  1. MongoDB 변경 내역의 메시지를 처리하도록 Pub/Sub 스키마와 주제를 구성합니다.
  2. 수신되는 메시지를 기존 BigQuery 테이블에 기록하는 Pub/Sub의 BigQuery 구독을 만듭니다. BigQuery 구독을 사용하지 않는 경우에는 가져오기/내보내기 구독과 메시지를 읽고 BigQuery에 쓰는 구독자(예: Dataflow)가 필요합니다.

  3. MongoDB에 삽입된 새 문서를 리슨하고 Pub/Sub에 사용되는 스키마와 일치하는 변경 내역을 설정합니다.

이 대안에 관한 자세한 내용은 Pub/Sub BigQuery 구독을 사용하여 MongoDB 변경 스트림용 데이터 파이프라인 만들기를 참고하세요.

Confluent Cloud

MongoDB 변경 스트림을 모니터링하기 위해 자체 게시자 애플리케이션을 만들고 싶지 않다면 대신 Confluent Cloud를 사용하면 됩니다. 이 접근 방식에서는 Confluent를 사용하여 MongoDB 데이터 스트림을 읽도록 MongoDB Atlas 소스 커넥터를 구성합니다. 그런 다음 BigQuery 싱크 커넥터를 구성하여 Confluent 클러스터의 데이터를 BigQuery로 싱크합니다.

이 대안에 관한 자세한 내용은 Confluent 커넥터를 사용하여 MongoDB에서 BigQuery로 데이터 스트리밍을 참고하세요.

설계 고려사항

MongoDB Atlas to BigQuery 솔루션을 만들 때는 다음 영역을 고려해야 합니다.

보안, 개인정보 보호, 규정 준수

통합 파이프라인을 실행하면 Dataflow는 다음 두 가지 서비스 계정을 사용하여 보안 및 권한을 관리합니다.

  • Dataflow 서비스 계정. Dataflow 서비스는 Dataflow 서비스 계정을 작업 생성 요청의 일부로 사용합니다(예: 프로젝트 할당량 확인 및 사용자 대신 작업자 인스턴스 생성). Dataflow 서비스는 작업 실행 중에 작업을 관리하는 데도 이 계정을 사용합니다. 이 계정을 Dataflow 서비스 에이전트라고도 합니다.
  • 작업자 서비스 계정. 작업자 인스턴스는 사용자가 작업을 제출한 후 작업자 서비스 계정을 사용하여 입력 리소스와 출력 리소스에 액세스합니다. 기본적으로 작업자는 프로젝트의 Compute Engine 기본 서비스 계정을 작업자 서비스 계정으로 사용합니다. 작업자 서비스 계정에 roles/dataflow.worker가 있어야 합니다.

또한 Dataflow 파이프라인이 Google Cloud 리소스에 액세스할 수 있어야 합니다. 이러한 액세스를 허용하려면 Dataflow 작업을 실행하는 동안 프로젝트에서 리소스에 액세스할 수 있도록 Dataflow 프로젝트의 작업자 서비스 계정에 필요한 역할을 부여해야 합니다. 예를 들어 작업이 BigQuery에 쓰는 경우 서비스 계정에도 최소한 업데이트할 테이블 또는 기타 리소스에 대한 roles/bigquery.dataEditor 역할이 있어야 합니다.

비용 최적화

Dataflow 템플릿을 실행하는 데 드는 비용은 예약된 작업자 노드와 파이프라인 유형에 따라 다릅니다. 비용을 알아보려면 Dataflow 가격 책정을 참고하세요.

각 Dataflow 템플릿은 하나의 MongoDB 컬렉션에서 하나의 BigQuery 테이블로 데이터를 이동하는 작업을 처리할 수 있습니다. 따라서 컬렉션 수가 증가하면 Dataflow 템플릿을 활용하는 데 드는 비용도 증가할 수 있습니다.

운영 효율성

MongoDB 데이터를 효율적으로 사용하고 분석하려면 해당 데이터의 맞춤 변환을 실행해야 할 수 있습니다. 예를 들어 대상 스키마와 일치하거나 민감한 정보를 수정하거나 출력에서 일부 요소를 필터링하도록 MongoDB 데이터를 리포맷해야 할 수 있습니다. 이러한 변환을 실행해야 하는 경우 UDF를 사용하여 템플릿 코드를 수정하지 않고도 MongoDB to BigQuery 템플릿의 기능을 확장할 수 있습니다.

UDF는 JavaScript 함수입니다. UDF는 JSON 문자열을 수신하고 반환해야 합니다. 다음 코드는 변환 예시를 보여줍니다.

/**
* A simple transform function.
* @param {string} inJson
* @return {string} outJson
*/
function transform(inJson) {
   var outJson = JSON.parse(inJson);
   outJson.key = "value";
   return JSON.stringify(outJson);
}

UDF를 만드는 방법에 관한 자세한 내용은 Dataflow 템플릿에 대한 사용자 정의 함수 만들기를 참고하세요.

UDF를 만든 후에는 이 UDF를 사용하도록 다음 단계를 수행하여 MongoDB to BigQuery 템플릿으로 확장해야 합니다.

  • 먼저 UDF가 포함된 JavaScript 파일을 Google Cloud Storage에 로드해야 합니다.
  • 그런 다음 템플릿에서 Dataflow 작업을 만들 때 다음 템플릿 매개변수를 설정해야 합니다.
    • javascriptDocumentTransformGcsPath 매개변수를 JavaScript 파일의 Cloud Storage 위치로 설정합니다.
    • javascriptDocumentTransformFunctionName 매개변수를 UDF의 이름으로 설정합니다.

UDF로 템플릿을 확장하는 방법에 관한 자세한 내용은 MongoDB to BigQuery 템플릿을 참고하세요.

성능 최적화

MongoDB to BigQuery 변환의 성능은 다음 요소에 따라 달라집니다.

  • MongoDB 문서 크기
  • MongoDB 컬렉션의 개수입니다.
  • 변환에 고정 스키마 또는 다양한 스키마 사용 여부
  • JavaScript 기반 UDF를 사용하는 스키마 변환에 대한 구현팀의 지식

Deployment

이 참조 아키텍처를 배포하려면 MongoDB와 Google Cloud 간에 데이터 변환 배포를 참고하세요.

다음 단계

참여자

저자:

기타 참여자: