DP-900 4차

정원근·2023년 7월 17일
0

DP-900

목록 보기
2/2

데이터 웨어하우징 아키텍처


1. 데이터 수집 및 처리
하나 이상의 트랜잭션 데이터 저장소, 파일, 실시간 스트림 또는 기타 원본의 데이터가 데이터 레이크 또는 관계형 데이터 웨어하우스에 로드된다. 로드 작업에는 일반적으로 ETL(추출, 로드 및 변환) 프로세스가 포함되며, 분석을 위해 데이터를 정리, 필터링 및 재구성한다. ETL 프로세스에서 데이터는 분석 저장소에 로드되기 전에 변환되고 ETL 프로세스에서는 데이터가 저장소에 복사된 다음 변환한다.
결과 데이터 구조는 분석 쿼리에 최적화 된다. 데이터 처리는 다중 노드 클러스터를 사용하여 대량의 데이터를 병렬로 처리할 수 있는 분산 시스템에서 수행하는 경우가 많다. 데이터 수집에는 정적 데이터의 일괄 처리와 스트리밍 데이터의 실시간 처리가 모두 포함된다.
2. 분석 데이터 저장소
대규모 분석을 위한 데이터 저장소에는 관계형 데이터 웨어하우스, 파일 시스템 기반 데이터 레이크 및 데이터 웨어하우스와 데이터 레이크의 기능을 결합하는 하이브리드 아키텍처 (데이터 레이크하우스 또는 레이크 데이터베이스라고도 함)가 포함된다.
3. 분석 데이터 모델
데이터 모델은 하나 이상의 차원에서 숫자 데이터 값이 집계되는 큐브로 설명된다. 모델은 데이터값과 차원 엔터티 간의 관계를 캡슐화하여 드릴업/드릴다운 분석을 지원한다.
4. 데이터 시각화
비즈니스 또는 기타 조직의 추세, 비교 및 KPI(핵심 성과 지표)를 표시한다.

데이터 수집 파이프라인


대규모 데이터 수집은 ETL 프로세스를 오케스트레이션하는 파이프라인을 만들어 구현하는 것이 가장 좋다.
Azure Data Factory를 사용하여 파이프라인을 만들고 실행하거나 통합 작업 영역에서 데이터 웨어하우징 솔루션의 모든 구성 요소를 관리하려는 경우 Azure Synapse Analytics에서 동일한 파이프라인 엔진을 사용할 수 있다.

분석 데이터 저장소

데이터 웨어하우스


데이터가 트랜잭션 워크로드가 아닌 데이터 분석에 최적화된 스키마에 저장되는 관계형 데이터베이스.
일반적으로 트랜잭션 저장소의 데이터는 데이터를 집계할 수 있는 엔터티를 나타내는 하나 이상의 차원 테이블과 관련된 중앙 팩트 테이블에 숫자 값이 저장되는 스키마로 변환된다.

데이터 레이크


보통 고성능 데이터 액세스를 위한 분산 파일 시스템에 있는 파일 저장소.
Spark 또는 Hadoop과 같은 기술은 저장된 파일에 대한 쿼리를 처리하고 보고 및 분석을 위해 데이터를 반환하는 데 자주 사용된다. 데이터 레이크는 데이터가 저장소에 기록될 때 스키마를 적용하지 않고 분석하려는 구조화, 반 구조화 및 구조화되지 않은 데이터의 혼합을 지원하는 데 유용하다.

분석 저장소용 Azure 서비스

Azure Synapse Analytics

대규모 데이터 분석을 위한 통합 엔드투엔드 솔루션. 여러 기술과 기능을 결합하여 데이터 레이크 및 오픈 소스 Apache Spark의 유연성과 확장 가능한 고성능 SQL Server 기반 관계형 데이터 웨어하우스의 데이터 무결성 및 안정성을 결합할 수 있다. Synapse Analytics는 Azure에서 단일 통합 분석 솔루션을 만들려는 경우에 적합하다.

Azure Databricks

Apache Spark를 기반으로 구축된 포괄적인 데이터 분석 솔루션이며, 데이터 분석 및 데이터 과학을 위한 워크로드에 최적화된 Spark 클러스터뿐만 아니라 네이티브 SQL 기능을 제공한다. 일반적으로 사용되므로 플랫폼에 기존 전문 지식을 사용하거나, 다중 클라우드 환경에서 운영하거나, 클라우드 이식 가능한 솔루션을 지원해야 하는 경우 Azure Databricks를 분석 저장소로 사용하는 것이 좋다.

Azure HDInsight

분석 솔루션이 여러 오픈 소스 프레임워크를 사용하거나 기존 온-프레미스 Hadoop 기반 솔루션을 클라우드로 마이그레이션해야 하는 경우 적합한 옵션이 될 수 있다.

일괄 및 스트림 처리

데이터 처리는 프로세스를 통해 원시 데이터를 의미 있는 정보로 변환하는 것

  • 배치 처리
    단일 작업에서 함께 처리하기 전에 여러 데이터 레코드를 수집하고 저장한다.
  • 스트림 처리
    데이터 원본을 지속적으로 모니터링하고 새 데이터 이벤트가 발생할 때 실시간으로 처리한다.

일괄 처리 이해

일괄 처리에서는 새로 도착하는 데이터 요소가 수집 및 저장되고 전체 그룹이 일괄 처리로 함께 처리

예를 들어, 한 도로 구간에 있는 자동차 수를 세어 도로 교통량을 분석해야 한다고 가정. 이 경우 일괄 처리 방식을 사용하려면 주차장에 있는 자동차를 모은 다음, 사용 중이 아닐 때 단일 작업으로 계수해야 한다.
도로가 붐비고, 많은 수의 자동차 주행하는 경우가 잦은 경우에는 이 방식은 비실용적일 수 있다. 일단의 자동차가 주차되어 계수하기 전까지는 어떤 결과도 얻지 못 한다.
일괄 처리의 실제 예로 신용 카드 회사에서 청구를 처리하는 방법이 있습니다. 고객은 개별 신용 카드 구매 건에 대한 청구서를 받지 않으며, 해당 월의 모든 구매 건에 대한 월별 청구서를 받는다.

장점

  • 많은 양의 데이터를 편리한 시간에 처리할 수 있다.
  • 컴퓨터 또는 시스템이 유휴 상태일 때(예: 야간) 또는 사용량이 적은 시간에 실행되도록 예약할 수 있다.

단점

  • 데이터를 수집하고 결과를 가져오는 사이에 시간 지연이 발생한다.
  • 일괄로 처리하려면 먼저 모든 일괄 작업의 입력 데이터를 준비해야 한다. 즉, 데이터를 신중하게 확인해야 한다. 일괄 작업 중에 발생하는 데이터 문제, 오류 및 프로그램 충돌은 전체 프로세스를 중단시킨다. 입력 데이터를 신중하게 확인해야 작업을 다시 실행할 수 있다. 사소한 데이터 오류로 인해 일괄 처리 작업이 실행되지 않을 수 있다.

스트림 처리 이해

스트림 처리에서는 각각의 새로운 데이터가 도착할 때마다 처리됩니다. 일괄 처리와 달리, 다음 일괄 처리 주기까지 기다릴 수 없다. 데이터가 한 번에 일괄로 처리되지 않고 개별 단위로 실시간으로 처리가 되며 동적 데이터가 지속적으로 생성되는 시나리오에서 유용하다.

이 방식은 처리를 시작하기 위해 모든 자동차가 주차할 때까지 기다릴 필요가 없으며, 1분마다 지나가는 자동차 수를 계수하여 시간 경과에 따라 데이터를 집계할 수 있다.

사용 예

  • 주식 시장의 변동을 실시간으로 추적하고, 최대 예상 손실액을 계산하고, 주가의 움직임에 따라 포트폴리오의 균형을 자동으로 재조정하는 금융 기관을 들 수 있다.
  • 플레이어와 게임 간의 상호 작용에 대한 실시간 데이터를 수집하고 해당 데이터를 게임 플랫폼으로 전달하는 온라인 게임 회사를 들 수 있다. 그런 다음 해당 회사에서는 실시간으로 데이터를 분석하여 플레이어를 유치하기 위한 보상과 동적인 경험을 제공한다.
  • 모바일 디바이스에서 데이터 하위 집합을 추적하고, 지리 위치에 따라 방문할 만한 부동산을 실시간으로 추천하는 부동산 웹 사이트가 있다.

차이점

  • 데이터 범위
    일괄 처리로 데이터 세트의 모든 데이터를 처리할 수 있다. 스트림 처리는 일반적으로 가장 최근에 수신한 데이터 또는 RTW(Rolling Time Window)(예: 지난 30초) 내에 있는 데이터에만 액세스할 수 있다.

  • 데이터 크기
    대량의 데이터 세트를 효율적으로 처리하는 데에는 일괄 처리가 적합하다. 스트림 처리는 개별 레코드 또는 소수의 레코드로 이루어진 ‘소규모 일괄 처리’에 적합하다.

  • 성능
    대기 시간은 데이터를 수신하고 처리하는 데 소요되는 시간이다. 일괄 처리의 대기 시간은 일반적으로 몇 시간이다. 스트림 처리는 일반적으로 즉시 이루어지며 대기 시간은 대략 초 단위 또는 몇 밀리초 단위.

  • 분석
    일반적으로 복잡한 분석을 수행하기 위해 일괄 처리를 사용한다. 스트림 처리는 단순 응답 함수, 집계 또는 계산(예: 이동 평균)에 사용된다.

일괄 및 스트림 처리 결합

대규모 분석 솔루션 대부분은 일괄 처리와 스트림 처리가 혼합되어 있어 기록 및 실시간 데이터 분석이 모두 가능하다.

1. 스트리밍 데이터 원본의 데이터 이벤트가 실시간으로 캡처된다.
2. 기타 소스의 데이터는 데이터 저장소(흔히 데이터 레이크)에 수집되었다가 일괄 처리된다.
3. 실시간 분석이 필요하지 않은 경우에는 캡처된 스트리밍 데이터가 데이터 저장소에 기록되었다가 추후에 일괄 처리된다.
4. 실시간 분석이 필요한 경우에는 실시간 분석 또는 시각화를 위해 스트리밍 데이터를 준비하는 데 스트림 처리 기술이 사용됩니다. 임시 창에서 데이터를 필터링하거나 집계하는 경우가 많다.
5. 비스트리밍 데이터는 주기적으로 일괄 처리되어 분석을 위해 준비되며, 그 결과는 기록 분석을 위해 분석 데이터 저장소(데이터 웨어하우스라고도 함)에 유지 된다.
6. 스트림 처리 결과는 기록 분석을 지원하기 위해 분석 데이터 저장소에 유지될 수도 있다.
7. 분석 및 시각화 도구를 사용하여 실시간 데이터와 기록 데이터를 제공하고 탐색한다

스트림 처리 아키텍처 공통 요소

스트림 처리 솔루션을 구현하는 데 사용할 수 있는 여러 기술이 있는데, 특정 구현 세부 정보는 다를 수 있지만 대부분의 스트리밍 아키텍처는 공통 요소가 있다.

스트림 처리를 위한 일반 아키텍처


1. 이벤트에서 일부 데이터를 생성합니다. 이것은 센서에서 나오는 신호, 게시되는 소셜 미디어 메시지, 작성되는 로그 파일 항목 또는 일부 디지털 데이터를 생성하는 기타 항목일 수 있다.
2. 생성되는 데이터는 처리를 위해 스트리밍 소스에 캡처됩니다. 간단한 경우에서는 클라우드 데이터 저장소의 폴더 또는 데이터베이스의 테이블이 소스일 수 있다. 보다 강력한 스트리밍 솔루션에서는 이벤트 데이터를 순서 대로 처리하고 각 이벤트를 한 번만 처리하도록 논리를 캡슐화하는 "큐"가 소스일 수 있다.
3. 이벤트 데이터는 특정 이벤트 유형을 위한 데이터를 선택하거나, 데이터 값을 산출하거나, 임시(시간 기반) 기간 동안(또는 창)의 데이터 값을 집계하기 위해(예: 분당 센서 방출 수 계수) 이벤트 데이터에 작동하는 영구 쿼리에 의해 처리된다.
4. 스트림 처리 작업의 결과는 파일, 데이터베이스 테이블, 실시간 시각 대시보드 또는 추후 다운스트림 쿼리로 처리할 다른 큐가 될 수 있는 출력(또는 싱크)에 작성된다.

Azure의 실시간 분석

  • Azure Stream Analytics
    스트리밍 소스에서 데이터를 수집하고, 영구 쿼리를 적용하고, 결과를 출력에 작성하는 스트리밍 작업을 정의하는 데 사용할 수 있는 PaaS(platform as a service) 솔루션.
  • Spark Structured Streaming
    Azure Synapse Analytics, Azure Databricks 및 Azure HDInsight를 포함해 Apache Spark 기반 서비스에서 복잡한 스트리밍 솔루션을 개발할 수 있는 오픈 소스 라이브러리.
  • Azure Data Explorer
    시계열 요소를 사용하여 일괄 처리 또는 스트리밍 데이터를 수집 및 쿼리하는 데 최적화된 고성능 데이터베이스 및 분석 서비스이며, 독립 실행형 Azure 서비스로 또는 Azure Synapse Analytics 작업 영역에서 Azure Synapse Data Explorer 런타임으로 사용할 수 있다.

스트림 처리를 위한 소스

  • Azure Event Hubs
    이벤트 데이터 큐를 관리하는 데 사용할 수 있는 데이터 수집 서비스로, 각 이벤트가 순서대로 정확히 한 번 처리되도록 한다.
  • Azure IoT Hub
    Azure Event Hubs와 비슷하지만 사물 인터넷(IoT) 디바이스의 이벤트 데이터 관리용으로 최적화된 데이터 수집 서비스다.
  • Azure Data Lake Store Gen 2
    일괄 처리 시나리오에서 자주 사용되지만 스트리밍 데이터 소스로도 사용할 수 있는 확장성이 뛰어난 스토리지 서비스이다.
  • Apache Kafka
    흔히 Apache Spark와 함께 사용되는 오픈 소스 데이터 수집 솔루션입니다. Azure HDInsight를 사용하여 Kafka 클러스터를 만들 수 있다.

Azure Stream Analytics

  • Azure event hub, Azure IoT Hub 또는 Azure Storage BLOB 컨테이너 같은 입력에서 데이터를 수집한다.
  • 쿼리를 사용해 데이터 값을 선택하고, 산출하고, 집계하여 데이터를 처리한다.
  • Azure Data Lake Gen 2, Azure SQL Database, Azure Synapse Analytics, Azure Functions, Azure event hub, Microsoft Power BI 등과 같은 출력에 결과를 쓴다.

    Stream Analytics 쿼리는 시작되면 영구적으로 실행되어 새로운 데이터가 입력에 도착할 때 처리하고 결과를 출력에 저장하게 된다.
    Azure Stream Analytics는 스트리밍 원본에서 지속적으로 데이터를 캡처하고, 데이터를 필터링 또는 집계하고, 분석 및 보고를 위해 데이터 저장소 또는 다운스트림 프로세스로 결과를 보내야 하는 경우에 적합한 기술 선택이다.

Azure Stream Analytics 작업 및 클러스터

Azure Stream Analytics를 사용하는 가장 쉬운 방법은 Azure 구독에서 Stream Analytics 작업을 만들고, 해당 입력 및 출력을 구성하고, 작업에서 데이터를 처리하는 데 사용할 쿼리를 정의하는 것이다. 쿼리는 SQL(구조적 쿼리 언어) 구문으로 표현되며, 여러 데이터 소스의 정적 참조 데이터를 통합하여 입력에서 수집된 스트리밍 데이터와 결합할 수 있는 조회 값을 제공할 수 있다.

스트림 프로세스 요구 사항이 복잡하거나 리소스를 많이 사용하는 경우에는 Stream Analytics 작업과 동일한 기본 처리 엔진을 사용 하는 Stream Analytics 클러스터를 만들 수 있지만 전용 테넌트에서는(따라서 다른 고객이 처리에 영향을 주지 않음), 구성 가능한 확장성이 있어 특정 시나리오의 처리량 및 비용의 적절한 균형을 정의할 수 있다.

Apache Spark on Microsoft Azure

Apache Spark는 대규모 데이터 분석을 위한 분산 처리 프레임워크입니다. Spark on Microsoft Azure는 다음 서비스에서 사용할 수 있다.

  • Azure Synapse Analytics
  • Azure Databricks
  • Azure HDInsight
    Spark를 사용하여 여러 클러스터 노드에서 병렬로 코드(일반적으로 Python, Scala 또는 Java로 작성됨)를 실행하여 매우 많은 양의 데이터를 효율적으로 처리할 수 있다. Spark는 일괄 처리 및 스트림 처리 모두에 사용할 수 있다.

Spark Structured Streaming

Spark에서 스트리밍 데이터를 처리하려면 영구 데이터 스트림의 결과를 수집, 처리 및 출력하기 위한 API(애플리케이션 프로그래밍 인터페이스)를 제공하는 Spark 구조적 스트리밍 라이브러리를 사용하면 된다.

Spark 구조적 스트리밍은 스트리밍 데이터를 Spark 기반 데이터 레이크 또는 분석 데이터 저장소에 통합해야 하는 경우 실시간 분석에 적합

Delta Lake

Delta Lake는 트랜잭션 일관성, 스키마 적용 및 기타 일반적인 데이터 웨어하우징 기능에 필요한 지원을 데이터 레이크 스토리지에 추가하는 오픈 소스 스토리지 계층. 스트리밍 및 일괄 처리 데이터용 스토리지를 통합하며, Spark에서 일괄 처리 및 스트림 처리 모두에 대한 관계형 테이블을 정의하는 데 사용할 수 있다. 스트림 처리에 사용되는 경우에는 Delta Lake 테이블을 실시간 데이터에 대한 쿼리의 스트리밍 소스 또는 데이터 스트림이 기록되는 싱크로 사용할 수 있다.

Power BI

데이터 분석가가 비즈니스 사용자가 사용할 대화형 데이터 시각화를 빌드하는 데 사용할 수 있는 도구 및 서비스

데이터 모델링의 핵심 개념

분석 모델을 사용하면 분석을 지원하도록 데이터를 구조화할 수 있습니다. 모델은 관련 데이터 테이블을 기반으로 하며 분석하거나 보고하려는 숫자 값(측정값이라고 함) 및 집계할 엔터티(차원이라고 함)을 정의.
개념적으로 모델은 일반적으로 큐브라고 하는 다차원 구조를 형성하며, 여기서 차원이 교차하는 지점은 집계된 해당 차원의 측정값을 나타낸다.

테이블 및 스키마

팩트 테이블이 하나 이상의 차원 테이블과 관련된 스키마 유형을 별모양 스키마라고 합니다(단일 팩트 테이블과 관련된 5개의 차원이 있다고 가정합니다. 스키마는 5개의 뾰족한 별을 형성합니다!). 차원 테이블이 추가 세부 정보를 포함하는 추가 테이블과 관련된 더 복잡한 스키마를 정의할 수도 있습니다(예: 제품 테이블과 관련된 별도의 범주 테이블에서 제품 범주의 특성을 나타낼 수 있음). 이 경우 디자인을 눈송이 스키마라고 합니다. 팩트 테이블과 차원 테이블의 스키마는 모든 차원의 측정값 집계가 미리 계산되는 분석 모델을 만드는 데 사용됩니다. 매번 집계를 계산하는 것보다 분석 및 보고 작업의 성능이 훨씬 빨라집니다.

특성 계층

분석 모델에 대해 고려해야 할 마지막 한 가지 사항은 계층적 차원에서 여러 수준으로 집계된 값을 찾기 위해 신속하게 드릴업 또는 드릴다운할 수 있는 특성 계층 구조를 만드는 것. 제품 테이블에서 각 범주에 명명된 여러 제품이 포함될 수 있는 계층 구조를 형성할 수 있다.

Microsoft Power BI의 분석 모델링

Power BI을 사용하여 하나 이상의 데이터 원본에서 가져올 수 있는 데이터 테이블에서 분석 모델을 정의할 수 있다.

데이터 시각화 고려 사항

표 및 텍스트


테이블과 텍스트는 데이터를 통신하는 가장 간단한 방법이다. 테이블은 수많은 관련 값을 표시해야 하는 경우에 유용하며, 카드의 개별 텍스트 값은 중요한 그림이나 메트릭을 표시하는 유용한 방법일 수 있다.

가로 막대형 및 세로 막대형 차트


가로 막대형 차트와 세로 막대형 차트는 불연속 범주의 숫자 값을 시각적으로 비교할 때 효과적인 방법

꺽은선형 차트


꺾은선형 차트는 분류된 값을 비교하는 데 사용할 수도 있으먀 시간 경과에 따른 추세를 검사할 때 유용

원형 차트


원형 차트는 분류된 값이 총합 대비 몇 퍼센트인지를 시각적으로 비교하는 용도로 비즈니스 보고서에서 자주 사용

산점도


산점도는 두 숫자 측정값을 비교하고 둘 사이의 관계 또는 상관 관계를 식별할 때 유용

Maps


지도는 다양한 지리적 영역 또는 위치에 대한 값을 시각적으로 비교할 때 대단히 효과적

대화형 보고서


Power BI에서 보고서의 관련 데이터에 대한 시각적 요소는 자동으로 서로 연결되어 대화형 작업을 제공합니다

profile
데이터 부트캠프 13기

1개의 댓글

comment-user-thumbnail
2023년 7월 17일

소중한 정보 잘 봤습니다!

답글 달기