다음을 통해 공유


거의 실시간 레이크하우스 데이터 처리를 위해 Azure Synapse Analytics 사용

Azure AI 검색
Azure Cosmos DB
Azure 데이터 레이크
Azure Event Hubs
Azure Synapse Analytics

데이터 기반 기업은 백 엔드 및 분석 시스템을 고객 관련 애플리케이션과 거의 실시간으로 동기화해야 합니다. 트랜잭션, 업데이트 및 변경의 효과는 엔드투엔드 프로세스, 관련 애플리케이션 및 OLTP(온라인 트랜잭션 처리) 시스템을 통해 정확하게 반영되어야 합니다. 데이터를 사용하는 다운스트림 시스템에 반영할 OLTP 애플리케이션의 변경 내용에 대해 허용되는 대기 시간은 몇 분밖에 되지 않을 수 있습니다.

이 문서에서는 레이크하우스 데이터를 동기화 상태로 유지하기 위해 데이터를 거의 실시간으로 처리하는 엔드투엔드 솔루션에 대해 설명합니다. 이 솔루션은 데이터 처리 및 분석을 위해 Azure Event Hubs, Azure Synapse Analytics 및 Azure Data Lake Storage를 사용합니다.

비고

데이터 수집, 변환, 스토리지 및 분석을 위한 SaaS(통합 소프트웨어 as a Service) 플랫폼을 제공하는 Microsoft Fabric을 사용하여 유사한 아키텍처를 구현할 수 있습니다. 이 경우 Fabric은 아키텍처의 Azure Synapse Analytics 구성 요소를 대체하고 실시간 데이터 처리 및 분석을 위한 통합 기능을 제공합니다. 자세한 내용은 Fabric Real-Time Intelligence를 참조하세요.

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

아키텍처

엔드 투 엔드 데이터 처리 솔루션의 데이터 흐름을 보여 주는 다이어그램입니다.

이 아키텍처의 Visio 파일을 다운로드합니다 .

데이터 흐름

  1. CDC(변경 데이터 캡처)는 원본 시스템에서 변경 내용을 수신 대기하기 위한 필수 구성 요소입니다. Debezium 커넥터는 다른 원본 시스템에 연결하고 변경 내용이 발생하는 대로 활용할 수 있습니다. 커넥터에서 다양한 RDBMS(관계형 데이터베이스 관리 시스템)로부터 변경 내용을 캡처하고 이벤트를 생성할 수 있습니다. Debezium 커넥터를 설치하려면 Kafka 연결 시스템이 필요합니다.

  2. 커넥터는 변경 데이터를 추출하고 캡처된 이벤트를 Event Hubs로 보냅니다. Event Hubs에서 여러 원본으로부터 많은 양의 데이터를 받을 수 있습니다.

  3. Event Hubs는 데이터를 Azure Synapse Analytics Spark 풀로 직접 스트리밍하거나 원시 형식의 Data Lake Storage 랜딩 존으로 데이터를 보냅니다.

  4. 다른 일괄 처리 데이터 원본은 Azure Synapse Analytics 파이프라인을 사용하여 Data Lake Storage에 데이터를 복사하고 처리에 사용할 수 있도록 할 수 있습니다. ETL(엔드투엔드 추출, 변환 및 로드) 워크플로는 다른 단계를 연결하거나 단계 간에 종속성을 추가해야 할 수 있습니다. Azure Synapse Analytics 파이프라인은 전체 처리 프레임워크 내에서 워크플로 종속성을 오케스트레이션할 수 있습니다.

  5. Azure Synapse Analytics Spark 풀은 완전히 지원되는 Apache Spark 구조적 스트리밍 API를 사용하여 Spark 스트리밍 프레임워크에서 데이터를 처리합니다. 데이터 처리 단계에서는 데이터 품질 검사 및 고급 비즈니스 규칙 유효성 검사를 통합합니다.

  6. Data Lake Storage는 유효성이 검사된 데이터를 개방형 Delta Lake 형식으로 저장합니다. Delta Lake는 ACID(원자성, 일관성, 격리 및 내구성) 의미 체계 및 트랜잭션, 확장성 있는 메타데이터 처리, 기존 데이터 레이크에 대한 통합 스트리밍 및 일괄 데이터 처리를 제공합니다.

    쿼리 가속에 인덱스를 사용하면 Delta Lake 성능이 향상됩니다. Data Lake Storage 유효성 검사 영역의 데이터는 추가 고급 분석 및 기계 학습을 위한 원본이 될 수도 있습니다.

  7. 더 많은 규칙을 사용하여 최종 처리된 상태로 변환되고 보강된 Data Lake Storage의 데이터는 대규모 분석 쿼리를 실행하기 위해 전용 SQL 풀로 로드됩니다.

  8. Power BI는 전용 SQL 풀을 통해 노출되는 데이터를 사용하여 엔터프라이즈급 대시보드 및 보고서를 빌드합니다.

  9. Data Lake Store에서 캡처된 원시 데이터와 다음 작업에 대해 델타 형식으로 유효성이 검사된 데이터를 사용할 수도 있습니다.

    • Azure Synapse Analytics 서버리스 SQL 풀을 통한 계획되지 않은 및 예비 분석

    • Azure Machine Learning을 통한 기계 학습 모델 학습 및 배포

  10. 대기 시간이 짧은 일부 인터페이스의 경우 한 자릿수 서버 대기 시간에 대해 데이터를 비정규화해야 합니다. 이 사용 사례는 주로 API 응답에 사용됩니다. 이 시나리오에서는 한 자릿수 밀리초 응답에 대해 Azure Cosmos DB와 같은 NoSQL 데이터 저장소의 문서를 쿼리합니다.

  11. Azure Cosmos DB 분할 전략은 모든 쿼리 패턴을 효율적으로 지원하지 않을 수 있습니다. 이 경우 API가 Azure AI Search를 사용하여 액세스하는 데 필요한 데이터를 인덱싱하여 솔루션을 보강할 수 있습니다. Azure Cosmos DB 및 AI Search는 대기 시간이 짧은 쿼리 응답이 필요한 대부분의 시나리오를 충족할 수 있습니다. 예를 들어 소매 애플리케이션은 Azure Cosmos DB에 제품 카탈로그 데이터를 저장하지만 전체 텍스트 검색 기능과 유연한 인덱싱이 필요합니다. AI Search는 데이터를 인덱싱하고 자동 완성, 동의어 및 의미 체계 순위와 같은 고급 검색 기능을 제공할 수 있습니다. 이러한 기능은 Azure Cosmos DB 인덱싱 제한으로 복잡한 검색 시나리오가 제한되는 경우에 유용합니다.

구성 요소

이 솔루션은 다음 Azure 구성 요소를 사용합니다.

  • Event Hubs 는 대량의 데이터를 수집하도록 확장할 수 있는 관리형 분산 수집 서비스입니다. Event Hubs 게시자-구독자 메커니즘을 사용하면 다양한 애플리케이션이 Event Hubs 토픽에 메시지를 보낼 수 있으며 다운스트림 소비자는 해당 메시지에 연결하고 처리할 수 있습니다. Event Hubs 캡처 기능은 도착 시 Avro 형식으로 Data Lake Storage에 메시지를 쓸 수 있습니다. 이 기능은 손쉬운 마이크로 일괄 처리 및 장기 보존 시나리오를 가능하게 합니다. Event Hubs는 Kafka 호환 API도 제공하고 스키마 레지스트리를 지원합니다. 이 아키텍처에서 Event Hubs는 여러 원본에서 CDC 이벤트를 수신하고 다운스트림 소비자에게 배포합니다.

  • Data Lake Storage 는 확장 가능하고 안전한 데이터 레이크 솔루션입니다. 모든 데이터를 원시 및 유효성이 검사된 형식으로 저장하는 스토리지 하위 시스템을 형성합니다. 이 아키텍처에서 Data Lake Storage는 대규모 트랜잭션을 처리하고 다양한 파일 형식 및 크기를 지원합니다. 계층 구조 네임스페이스는 데이터를 친숙한 폴더 구조로 구성하고 POSIX(이식 가능한 운영 체제 인터페이스 for Unix) 권한을 지원합니다. ABFS(Azure Blob Filesystem) 드라이버는 Hadoop 호환 API를 제공합니다.

  • Azure Synapse Analytics 는 데이터 통합, 엔터프라이즈 데이터 웨어하우징 및 빅 데이터 분석을 결합한 무제한 분석 서비스입니다. 이 솔루션에서 사용하는 Azure Synapse Analytics 에코시스템의 기능은 다음과 같습니다.

    • Azure Synapse Analytics Spark 풀 은 오픈 소스 Spark에 기본 제공 성능 향상을 추가하는 주문형 Spark 런타임을 제공하는 클러스터입니다. 이 아키텍처에서 고객은 유연한 자동 크기 조정 설정을 구성하고, Apache Livy 엔드포인트를 통해 원격으로 작업을 제출하고, 대화형 환경에 Synapse Studio Notebook 인터페이스를 사용할 수 있습니다.

    • Azure Synapse Analytics 서버리스 SQL 풀 은 친숙한 T-SQL 구문을 사용하여 Lakehouse 데이터를 쿼리하기 위한 인터페이스를 제공하는 요청 시 쿼리 기능입니다. 설정할 인프라가 없으며 Azure Synapse Analytics 작업 영역 배포는 자동으로 엔드포인트를 만듭니다. 이 아키텍처에서 Azure Synapse Analytics 서버리스 SQL 풀을 사용하면 계획되지 않은 쿼리 분석을 위한 데이터의 기본 검색 및 탐색이 가능합니다.

    • Azure Synapse Analytics 전용 SQL 풀 은 프로비전된 데이터 웨어하우징 리소스입니다. 열 형식 스토리지를 사용하여 관계형 테이블에 데이터를 저장합니다. 이 아키텍처에서 전용 SQL 풀은 스케일 아웃 아키텍처를 사용하여 여러 노드에 데이터 처리를 분산합니다. PolyBase 쿼리는 데이터를 SQL 풀 테이블로 가져옵니다. 테이블은 분석 및 보고를 위해 Power BI에 연결할 수 있습니다.

  • Power BI 는 보고서 및 대시보드를 만들고 액세스하는 시각적 인터페이스를 제공하는 비즈니스 분석 서비스입니다. Power BI Desktop은 다양한 데이터 원본에 연결하고, 원본을 데이터 모델에 결합하고, 보고서 또는 대시보드를 빌드할 수 있습니다. 이 아키텍처에서는 Power BI를 사용하여 비즈니스 요구 사항에 따라 데이터를 변환하고 시각적 개체 및 보고서를 고객과 공유할 수 있습니다.

  • Azure Cosmos DB 는 전역적으로 분산된 NoSQL 데이터베이스 서비스입니다. 이 솔루션은 Azure Cosmos DB를 한 자릿수 밀리초 응답 시간과 고가용성이 필요한 애플리케이션에 사용합니다. Azure Cosmos DB는 모든 Azure 지역에서 다중 지역 쓰기를 제공합니다.

  • AI Search 는 개발자가 애플리케이션 및 웹 사이트에 대한 풍부한 검색 환경을 빌드할 수 있도록 하는 AI 기반 PaaS(Platform as a Service)입니다. 고급 검색 시나리오에서는 Azure Cosmos DB 인덱싱 모델이 너무 엄격할 때 이 솔루션에서 AI Search를 사용합니다. AI Search를 사용하면 오타 허용 오차, 자동 완성, 의미 체계 순위 및 동의어 일치와 같은 기능을 사용하여 유연한 쿼리를 수행할 수 있습니다. REST API 또는 .NET SDK를 사용하여 인덱싱된 데이터를 쿼리할 수 있습니다. 여러 인덱스에서 데이터를 검색해야 하는 경우 단일 인덱스로 통합하거나 복잡한 데이터 형식 을 사용하여 중첩된 구조를 모델링할 수 있습니다.

시나리오 정보

변경 내용을 거의 실시간으로 처리하는 엔드투엔드 워크플로에는 다음이 필요합니다.

  • CDC 기술입니다. OLTP 애플리케이션에는 SQL Server, MySQL 및 Oracle과 같은 다양한 백 엔드 데이터 저장소가 있을 수 있습니다. 첫 번째 단계는 변경 내용이 발생하는 대로 신 대기하고 앞으로 전파하는 것입니다.

  • 변경 이벤트를 대규모로 게시하는 수집 버퍼. 이 서비스는 메시지가 도착할 때 많은 양의 데이터를 처리할 수 있습니다. 개별 구독자는 이 시스템에 연결하여 데이터를 처리할 수 있습니다.

  • 원시 형식 그대로의 데이터를 위한 확장성 있는 분산 스토리지

  • 사용자가 상태를 다시 시작하고 관리할 수 있는 효율적인 분산 스트림 처리 시스템

  • 비즈니스 결정을 지원하기 위해 대규모로 실행되는 분석 시스템

  • 셀프 서비스 분석 인터페이스

  • 대기 시간이 짧은 API 응답의 경우 데이터의 비정규화된 표현을 저장하는 NoSQL 데이터베이스입니다.

  • 경우에 따라 데이터를 인덱싱하고, 인덱스를 정기적으로 새로 고치며, 최신 데이터를 다운스트림 사용에 사용할 수 있도록 하는 시스템

이전의 모든 기술은 경계 보안, 인증, 권한 부여 및 데이터 암호화에 관련 보안 구문을 사용해야 합니다.

잠재적인 사용 사례

이 솔루션은 다음과 같은 사용 사례에 적합합니다.

  • 변경 내용을 OLTP에서 OLAP(온라인 분석 처리)로 전파해야 하는 산업

  • 데이터 변환 또는 보강이 필요한 애플리케이션

실시간 데이터 처리 시나리오는 금융 서비스 산업에 특히 중요합니다. 예를 들어 보험, 신용 카드 또는 은행 고객이 결제한 다음, 고객 서비스에 즉시 연락하는 경우 고객 지원 담당자는 최신 정보를 가지고 있어야 합니다.

소매, 상거래 및 의료 부문에도 유사한 시나리오가 적용됩니다. 이러한 시나리오를 사용하도록 설정하면 운영이 간소화되고 조직의 생산성이 향상되고 고객 만족도가 높아집니다.

고려 사항

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

안정성

안정성은 애플리케이션이 고객에 대한 약정을 충족할 수 있도록 하는 데 도움이 됩니다. 자세한 내용은 안정성에 대한 디자인 검토 검사 목록을 참조하세요.

  • Event Hubs는 프리미엄 및 전용 계층에서 90일 간의 데이터 보존을 제공합니다. 장애 조치(failover) 시나리오의 경우 쌍으로 연결된 지역에서 보조 네임스페이스를 설정하고 장애 조치(failover) 중에 활성화할 수 있습니다. 영역 중복을 사용하도록 설정하여 데이터 센터 오류에 대한 복원력을 보장합니다. Event Hubs 캡처 기능을 사용하여 재생 및 복구 시나리오를 위해 Data Lake Storage에 데이터를 유지할 수 있습니다.

  • Azure Synapse Analytics Spark 풀 작업은 유지 관리를 위해 노드가 중단됨에 따라 7일마다 재활용됩니다. 시스템에 연결된 SLA(서비스 수준 계약)를 통해 작업할 때 이 작업을 고려합니다. 이 제한은 RTO(복구 시간 목표)가 약 15분인 많은 시나리오에서 문제가 되지 않습니다. 부하 급증 및 노드 오류를 처리하도록 자동 크기 조정이 구성되어 있는지 확인합니다.

  • 지역 백업 및 ZRS(영역 중복 스토리지)가 있는 전용 SQL 풀을 사용하여 지역 및 영역 중단으로부터 보호합니다.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 개선하는 방법에 중점을 둡니다. 자세한 내용은 비용 최적화에 대한 디자인 검토 검사 목록을 참조하세요.

  • 워크로드 특성에 따라 다양한 Event Hubs 계층 중에서 선택할 수 있습니다. Event Hubs 청구서는 Data Lake Storage에 저장된 데이터의 양에 따라 별도로 스토리지를 캡처합니다.

  • Data Lake Storage의 계층을 통한 개체 수명 주기 관리를 고려합니다. 데이터가 오래되면 분석을 위해 최근 데이터에 액세스해야 하는 핫 계층에서 비용이 적게 드는 콜드 스토리지 계층으로 데이터를 이동할 수 있습니다. 콜드 스토리지 계층은 장기 보존에 대한 비용 효율적인 옵션입니다.

  • 전용 SQL 풀은 개발 또는 테스트 환경에서 사용하지 않을 경우 일시 중지할 수 있습니다. 필요에 따라 풀을 일시 중지하도록 스크립트를 예약하거나 포털을 통해 수동으로 풀을 일시 중지할 수 있습니다.

  • Azure Synapse Analytics Spark 풀의 경우 자동 크기 조정을 사용하여 워크로드 수요에 따라 리소스를 동적으로 할당하고 과잉 프로비전을 방지합니다. 성능 요구 사항을 충족하는 가장 작은 풀 크기를 선택하고 자동 종료 설정을 사용하여 유휴 풀을 즉시 종료합니다. 순서 섞기 작업을 최소화하고 중간 결과를 캐싱하며 파티션 크기를 조정하여 런타임 및 리소스 소비를 줄여 Spark 작업을 최적화합니다. Azure Synapse Analytics 모니터링 도구를 사용하여 사용량을 모니터링하고 작업 성능 및 비용 추세에 따라 구성을 조정합니다.

  • Azure Cosmos DB에서 비용 효율성을 최적화하려면 필요한 경로만 포함하도록 인덱싱 정책을 조정하여 스토리지 및 RU(요청 단위) 소비를 줄입니다. 오버프로비전하지 않고 워크로드 요구 사항에 맞게 적절한 API 및 일관성 수준을 선택합니다. 자동 크기 조정 처리량을 사용하여 수요에 따라 RU를 동적으로 조정하고 가능한 경우 워크로드를 더 적은 컨테이너로 통합하여 오버헤드를 최소화합니다. Microsoft Cost Management를 사용하여 사용량을 정기적으로 모니터링하고 예기치 않은 요금을 방지하기 위해 경고를 설정합니다.

  • Azure 가격 계산기를 사용하여 가격 책정을 예측합니다.

성능 효율성

성능 효율성은 사용자 요구를 효율적으로 충족하기 위해 워크로드의 크기를 조정하는 기능을 의미합니다. 자세한 내용은 성능 효율성에 대한 디자인 검토 검사 목록을 참조하세요.

  • 여러 병렬 로그(파티션)에 이벤트를 분산하여 처리량을 늘리는 분할을 통해 Event Hubs의 크기를 조정할 수 있습니다. 동일한 고객 또는 디바이스의 이벤트와 같은 관련 이벤트의 순서를 유지하려면 이벤트를 게시할 때 일관된 파티션 키를 사용합니다. 이렇게 하면 모든 관련 이벤트가 동일한 파티션으로 라우팅되고 Event Hubs가 순서를 유지 관리합니다. 예상 이벤트 볼륨에 따라 처리량 단위(TU)를 조정합니다. 캡처 기능을 사용하여 효율적인 다운스트림 처리를 위해 Avro 또는 Parquet 형식의 Data Lake Storage에 직접 씁니다.

  • 워크로드에 따라 소형, 중형 또는 대형 VM(가상 머신) SKU를 사용하여 Azure Synapse Analytics Spark 풀을 설정할 수 있습니다. 워크로드의 활동 급증을 고려하도록 Azure Synapse Analytics Spark 풀에서 자동 크기 조정을 구성할 수도 있습니다. 더 많은 컴퓨팅 리소스가 필요한 경우 클러스터는 수요에 맞게 자동으로 확장되고 처리가 완료된 후 축소됩니다.

  • Delta Lake는 이 아키텍처에서 고성능, 안정성 및 확장 가능한 데이터 처리를 보장하는 데 핵심적인 역할을 합니다.

    • Delta Lake에서 자동 최적화 및 자동 압축 기능을 사용하도록 설정하여 쓰기 작업 중에 작은 파일을 자동으로 관리하고 데이터 레이아웃을 최적화합니다. 이러한 기능은 수동 개입의 필요성을 줄이기 때문에 스트리밍 또는 빈번한 마이크로 일괄 처리 수집 시나리오에 적합합니다.

    • 작은 파일을 더 큰 파일로 수동으로 압축하는 데 사용합니다 OPTIMIZE . 이 방법은 스트리밍 수집에서 많은 작은 파일을 만든 후 읽기 효율성을 개선하고 메타데이터 오버헤드를 줄이려는 경우에 특히 유용합니다.

    • OPTIMIZE 타임스탬프 또는 고객 ID와 같이 자주 쿼리되는 열에서 관련 데이터를 공동 배치하는 데 사용합니다ZORDER BY. 이 쿼리는 읽기 중에 검색되는 데이터의 양을 줄여 쿼리 성능을 향상시킵니다.

  • 거의 실시간 분석을 위해 전용 SQL 풀의 성능을 최적화하려면 다음 작업을 수행합니다.

    • 해시, 라운드 로빈, 복제된 메서드와 같은 적절한 배포 메서드를 사용합니다.
    • 쿼리 정리를 개선하기 위해 시간 또는 지역별로 큰 테이블을 분할합니다.
    • 자주 액세스하는 데이터에 대해 구체화된 뷰 및 결과 집합 캐싱을 사용합니다.
    • 쿼리를 효율적으로 실행하려면 up-to-date 통계 및 인덱스를 유지 관리합니다.
    • 리소스 클래스를 할당하여 메모리 및 동시성을 관리합니다.
    • SQL Insights 및 DMV(동적 관리 뷰)와 같은 기본 제공 도구를 사용하여 성능을 모니터링합니다.

    이러한 사례는 대규모 분석 워크로드에서 대기 시간이 짧고 처리량이 높은 성능을 보장하는 데 도움이 됩니다.

  • 실시간 분석 시나리오에서 성능을 위해 Azure Cosmos DB를 최적화하려면 적절한 인덱싱 정책을 구성하여 쿼리 대기 시간 및 스토리지 오버헤드를 줄이고 적절한 일관성 수준을 선택하여 성능과 데이터 정확도의 균형을 유지합니다. 분할을 효과적으로 사용하여 워크로드를 균등하게 분산하고 핫 파티션을 방지합니다. 대기 시간이 짧은 전역 액세스를 위해 다중 지역 쓰기를 사용하도록 설정하고 RU를 사용하여 수요에 따라 동적으로 크기를 조정하여 처리량을 모니터링합니다. 이러한 사례는 높은 수집, 짧은 대기 시간 워크로드에 대한 응답성, 확장성 있는 성능을 보장하는 데 도움이 됩니다.

참가자

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

보안 주체 작성자:

다른 기여자:

LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.

다음 단계