1. 데이터 수집 및 처리
하나 이상의 트랜잭션 데이터 저장소, 파일, 실시간 스트림 또는 기타 원본의 데이터가 데이터 레이크 또는 관계형 데이터 웨어하우스에 로드된다. 로드 작업에는 일반적으로 ETL(추출, 로드 및 변환) 프로세스가 포함되며, 분석을 위해 데이터를 정리, 필터링 및 재구성한다. ETL 프로세스에서 데이터는 분석 저장소에 로드되기 전에 변환되고 ETL 프로세스에서는 데이터가 저장소에 복사된 다음 변환한다.
결과 데이터 구조는 분석 쿼리에 최적화 된다. 데이터 처리는 다중 노드 클러스터를 사용하여 대량의 데이터를 병렬로 처리할 수 있는 분산 시스템에서 수행하는 경우가 많다. 데이터 수집에는 정적 데이터의 일괄 처리와 스트리밍 데이터의 실시간 처리가 모두 포함된다.
2. 분석 데이터 저장소
대규모 분석을 위한 데이터 저장소에는 관계형 데이터 웨어하우스, 파일 시스템 기반 데이터 레이크 및 데이터 웨어하우스와 데이터 레이크의 기능을 결합하는 하이브리드 아키텍처 (데이터 레이크하우스 또는 레이크 데이터베이스라고도 함)가 포함된다.
3. 분석 데이터 모델
데이터 모델은 하나 이상의 차원에서 숫자 데이터 값이 집계되는 큐브로 설명된다. 모델은 데이터값과 차원 엔터티 간의 관계를 캡슐화하여 드릴업/드릴다운 분석을 지원한다.
4. 데이터 시각화
비즈니스 또는 기타 조직의 추세, 비교 및 KPI(핵심 성과 지표)를 표시한다.
대규모 데이터 수집은 ETL 프로세스를 오케스트레이션하는 파이프라인을 만들어 구현하는 것이 가장 좋다.
Azure Data Factory를 사용하여 파이프라인을 만들고 실행하거나 통합 작업 영역에서 데이터 웨어하우징 솔루션의 모든 구성 요소를 관리하려는 경우 Azure Synapse Analytics에서 동일한 파이프라인 엔진을 사용할 수 있다.
데이터가 트랜잭션 워크로드가 아닌 데이터 분석에 최적화된 스키마에 저장되는 관계형 데이터베이스.
일반적으로 트랜잭션 저장소의 데이터는 데이터를 집계할 수 있는 엔터티를 나타내는 하나 이상의 차원 테이블과 관련된 중앙 팩트 테이블에 숫자 값이 저장되는 스키마로 변환된다.
보통 고성능 데이터 액세스를 위한 분산 파일 시스템에 있는 파일 저장소.
Spark 또는 Hadoop과 같은 기술은 저장된 파일에 대한 쿼리를 처리하고 보고 및 분석을 위해 데이터를 반환하는 데 자주 사용된다. 데이터 레이크는 데이터가 저장소에 기록될 때 스키마를 적용하지 않고 분석하려는 구조화, 반 구조화 및 구조화되지 않은 데이터의 혼합을 지원하는 데 유용하다.
대규모 데이터 분석을 위한 통합 엔드투엔드 솔루션. 여러 기술과 기능을 결합하여 데이터 레이크 및 오픈 소스 Apache Spark의 유연성과 확장 가능한 고성능 SQL Server 기반 관계형 데이터 웨어하우스의 데이터 무결성 및 안정성을 결합할 수 있다. Synapse Analytics는 Azure에서 단일 통합 분석 솔루션을 만들려는 경우에 적합하다.
Apache Spark를 기반으로 구축된 포괄적인 데이터 분석 솔루션이며, 데이터 분석 및 데이터 과학을 위한 워크로드에 최적화된 Spark 클러스터뿐만 아니라 네이티브 SQL 기능을 제공한다. 일반적으로 사용되므로 플랫폼에 기존 전문 지식을 사용하거나, 다중 클라우드 환경에서 운영하거나, 클라우드 이식 가능한 솔루션을 지원해야 하는 경우 Azure Databricks를 분석 저장소로 사용하는 것이 좋다.
분석 솔루션이 여러 오픈 소스 프레임워크를 사용하거나 기존 온-프레미스 Hadoop 기반 솔루션을 클라우드로 마이그레이션해야 하는 경우 적합한 옵션이 될 수 있다.
데이터 처리는 프로세스를 통해 원시 데이터를 의미 있는 정보로 변환하는 것
일괄 처리에서는 새로 도착하는 데이터 요소가 수집 및 저장되고 전체 그룹이 일괄 처리로 함께 처리
예를 들어, 한 도로 구간에 있는 자동차 수를 세어 도로 교통량을 분석해야 한다고 가정. 이 경우 일괄 처리 방식을 사용하려면 주차장에 있는 자동차를 모은 다음, 사용 중이 아닐 때 단일 작업으로 계수해야 한다.
도로가 붐비고, 많은 수의 자동차 주행하는 경우가 잦은 경우에는 이 방식은 비실용적일 수 있다. 일단의 자동차가 주차되어 계수하기 전까지는 어떤 결과도 얻지 못 한다.
일괄 처리의 실제 예로 신용 카드 회사에서 청구를 처리하는 방법이 있습니다. 고객은 개별 신용 카드 구매 건에 대한 청구서를 받지 않으며, 해당 월의 모든 구매 건에 대한 월별 청구서를 받는다.
스트림 처리에서는 각각의 새로운 데이터가 도착할 때마다 처리됩니다. 일괄 처리와 달리, 다음 일괄 처리 주기까지 기다릴 수 없다. 데이터가 한 번에 일괄로 처리되지 않고 개별 단위로 실시간으로 처리가 되며 동적 데이터가 지속적으로 생성되는 시나리오에서 유용하다.
이 방식은 처리를 시작하기 위해 모든 자동차가 주차할 때까지 기다릴 필요가 없으며, 1분마다 지나가는 자동차 수를 계수하여 시간 경과에 따라 데이터를 집계할 수 있다.
사용 예
데이터 범위
일괄 처리로 데이터 세트의 모든 데이터를 처리할 수 있다. 스트림 처리는 일반적으로 가장 최근에 수신한 데이터 또는 RTW(Rolling Time Window)(예: 지난 30초) 내에 있는 데이터에만 액세스할 수 있다.
데이터 크기
대량의 데이터 세트를 효율적으로 처리하는 데에는 일괄 처리가 적합하다. 스트림 처리는 개별 레코드 또는 소수의 레코드로 이루어진 ‘소규모 일괄 처리’에 적합하다.
성능
대기 시간은 데이터를 수신하고 처리하는 데 소요되는 시간이다. 일괄 처리의 대기 시간은 일반적으로 몇 시간이다. 스트림 처리는 일반적으로 즉시 이루어지며 대기 시간은 대략 초 단위 또는 몇 밀리초 단위.
분석
일반적으로 복잡한 분석을 수행하기 위해 일괄 처리를 사용한다. 스트림 처리는 단순 응답 함수, 집계 또는 계산(예: 이동 평균)에 사용된다.
대규모 분석 솔루션 대부분은 일괄 처리와 스트림 처리가 혼합되어 있어 기록 및 실시간 데이터 분석이 모두 가능하다.
1. 스트리밍 데이터 원본의 데이터 이벤트가 실시간으로 캡처된다.
2. 기타 소스의 데이터는 데이터 저장소(흔히 데이터 레이크)에 수집되었다가 일괄 처리된다.
3. 실시간 분석이 필요하지 않은 경우에는 캡처된 스트리밍 데이터가 데이터 저장소에 기록되었다가 추후에 일괄 처리된다.
4. 실시간 분석이 필요한 경우에는 실시간 분석 또는 시각화를 위해 스트리밍 데이터를 준비하는 데 스트림 처리 기술이 사용됩니다. 임시 창에서 데이터를 필터링하거나 집계하는 경우가 많다.
5. 비스트리밍 데이터는 주기적으로 일괄 처리되어 분석을 위해 준비되며, 그 결과는 기록 분석을 위해 분석 데이터 저장소(데이터 웨어하우스라고도 함)에 유지 된다.
6. 스트림 처리 결과는 기록 분석을 지원하기 위해 분석 데이터 저장소에 유지될 수도 있다.
7. 분석 및 시각화 도구를 사용하여 실시간 데이터와 기록 데이터를 제공하고 탐색한다
스트림 처리 솔루션을 구현하는 데 사용할 수 있는 여러 기술이 있는데, 특정 구현 세부 정보는 다를 수 있지만 대부분의 스트리밍 아키텍처는 공통 요소가 있다.
1. 이벤트에서 일부 데이터를 생성합니다. 이것은 센서에서 나오는 신호, 게시되는 소셜 미디어 메시지, 작성되는 로그 파일 항목 또는 일부 디지털 데이터를 생성하는 기타 항목일 수 있다.
2. 생성되는 데이터는 처리를 위해 스트리밍 소스에 캡처됩니다. 간단한 경우에서는 클라우드 데이터 저장소의 폴더 또는 데이터베이스의 테이블이 소스일 수 있다. 보다 강력한 스트리밍 솔루션에서는 이벤트 데이터를 순서 대로 처리하고 각 이벤트를 한 번만 처리하도록 논리를 캡슐화하는 "큐"가 소스일 수 있다.
3. 이벤트 데이터는 특정 이벤트 유형을 위한 데이터를 선택하거나, 데이터 값을 산출하거나, 임시(시간 기반) 기간 동안(또는 창)의 데이터 값을 집계하기 위해(예: 분당 센서 방출 수 계수) 이벤트 데이터에 작동하는 영구 쿼리에 의해 처리된다.
4. 스트림 처리 작업의 결과는 파일, 데이터베이스 테이블, 실시간 시각 대시보드 또는 추후 다운스트림 쿼리로 처리할 다른 큐가 될 수 있는 출력(또는 싱크)에 작성된다.
Azure Stream Analytics를 사용하는 가장 쉬운 방법은 Azure 구독에서 Stream Analytics 작업을 만들고, 해당 입력 및 출력을 구성하고, 작업에서 데이터를 처리하는 데 사용할 쿼리를 정의하는 것이다. 쿼리는 SQL(구조적 쿼리 언어) 구문으로 표현되며, 여러 데이터 소스의 정적 참조 데이터를 통합하여 입력에서 수집된 스트리밍 데이터와 결합할 수 있는 조회 값을 제공할 수 있다.
스트림 프로세스 요구 사항이 복잡하거나 리소스를 많이 사용하는 경우에는 Stream Analytics 작업과 동일한 기본 처리 엔진을 사용 하는 Stream Analytics 클러스터를 만들 수 있지만 전용 테넌트에서는(따라서 다른 고객이 처리에 영향을 주지 않음), 구성 가능한 확장성이 있어 특정 시나리오의 처리량 및 비용의 적절한 균형을 정의할 수 있다.
Apache Spark는 대규모 데이터 분석을 위한 분산 처리 프레임워크입니다. Spark on Microsoft Azure는 다음 서비스에서 사용할 수 있다.
Spark에서 스트리밍 데이터를 처리하려면 영구 데이터 스트림의 결과를 수집, 처리 및 출력하기 위한 API(애플리케이션 프로그래밍 인터페이스)를 제공하는 Spark 구조적 스트리밍 라이브러리를 사용하면 된다.
Spark 구조적 스트리밍은 스트리밍 데이터를 Spark 기반 데이터 레이크 또는 분석 데이터 저장소에 통합해야 하는 경우 실시간 분석에 적합
Delta Lake는 트랜잭션 일관성, 스키마 적용 및 기타 일반적인 데이터 웨어하우징 기능에 필요한 지원을 데이터 레이크 스토리지에 추가하는 오픈 소스 스토리지 계층. 스트리밍 및 일괄 처리 데이터용 스토리지를 통합하며, Spark에서 일괄 처리 및 스트림 처리 모두에 대한 관계형 테이블을 정의하는 데 사용할 수 있다. 스트림 처리에 사용되는 경우에는 Delta Lake 테이블을 실시간 데이터에 대한 쿼리의 스트리밍 소스 또는 데이터 스트림이 기록되는 싱크로 사용할 수 있다.
데이터 분석가가 비즈니스 사용자가 사용할 대화형 데이터 시각화를 빌드하는 데 사용할 수 있는 도구 및 서비스
분석 모델을 사용하면 분석을 지원하도록 데이터를 구조화할 수 있습니다. 모델은 관련 데이터 테이블을 기반으로 하며 분석하거나 보고하려는 숫자 값(측정값이라고 함) 및 집계할 엔터티(차원이라고 함)을 정의.
개념적으로 모델은 일반적으로 큐브라고 하는 다차원 구조를 형성하며, 여기서 차원이 교차하는 지점은 집계된 해당 차원의 측정값을 나타낸다.
팩트 테이블이 하나 이상의 차원 테이블과 관련된 스키마 유형을 별모양 스키마라고 합니다(단일 팩트 테이블과 관련된 5개의 차원이 있다고 가정합니다. 스키마는 5개의 뾰족한 별을 형성합니다!). 차원 테이블이 추가 세부 정보를 포함하는 추가 테이블과 관련된 더 복잡한 스키마를 정의할 수도 있습니다(예: 제품 테이블과 관련된 별도의 범주 테이블에서 제품 범주의 특성을 나타낼 수 있음). 이 경우 디자인을 눈송이 스키마라고 합니다. 팩트 테이블과 차원 테이블의 스키마는 모든 차원의 측정값 집계가 미리 계산되는 분석 모델을 만드는 데 사용됩니다. 매번 집계를 계산하는 것보다 분석 및 보고 작업의 성능이 훨씬 빨라집니다.
분석 모델에 대해 고려해야 할 마지막 한 가지 사항은 계층적 차원에서 여러 수준으로 집계된 값을 찾기 위해 신속하게 드릴업 또는 드릴다운할 수 있는 특성 계층 구조를 만드는 것. 제품 테이블에서 각 범주에 명명된 여러 제품이 포함될 수 있는 계층 구조를 형성할 수 있다.
Power BI을 사용하여 하나 이상의 데이터 원본에서 가져올 수 있는 데이터 테이블에서 분석 모델을 정의할 수 있다.
테이블과 텍스트는 데이터를 통신하는 가장 간단한 방법이다. 테이블은 수많은 관련 값을 표시해야 하는 경우에 유용하며, 카드의 개별 텍스트 값은 중요한 그림이나 메트릭을 표시하는 유용한 방법일 수 있다.
가로 막대형 차트와 세로 막대형 차트는 불연속 범주의 숫자 값을 시각적으로 비교할 때 효과적인 방법
꺾은선형 차트는 분류된 값을 비교하는 데 사용할 수도 있으먀 시간 경과에 따른 추세를 검사할 때 유용
원형 차트는 분류된 값이 총합 대비 몇 퍼센트인지를 시각적으로 비교하는 용도로 비즈니스 보고서에서 자주 사용
산점도는 두 숫자 측정값을 비교하고 둘 사이의 관계 또는 상관 관계를 식별할 때 유용
지도는 다양한 지리적 영역 또는 위치에 대한 값을 시각적으로 비교할 때 대단히 효과적
Power BI에서 보고서의 관련 데이터에 대한 시각적 요소는 자동으로 서로 연결되어 대화형 작업을 제공합니다
소중한 정보 잘 봤습니다!