출처 :
Microsoft Azure 데이터 기본 사항: Azure의 데이터 분석 탐색 - Training
Microsoft Azure 데이터 기본 사항: Azure의 데이터 분석 탐색
learn.microsoft.com
목차
1. 대규모 분석의 기본 사항 살펴보기
2. 실시간 분석의 기본 사항 살펴보기
3. 데이터 시각화의 기본 사항 살펴보기
실시간 분석의 기본 사항 살펴보기
학습목표
- 일괄 처리와 스트림 처리 비교
- 스트리밍 데이터 솔루션의 공통 요소 설명
- Azure Stream Analytics의 기능 설명
- Azure의 Spark Structured Steaming(Spark 구조적 스트림)의 기능 및 설명
- Microsoft Fabric의 실시간 분석 기능 설명
[일괄 처리 및 스트림 처리 이해]
- 데이터 처리는 프로세스를 통해 원시 데이터를 의미 있는 정보로 변환하는 것
- 데이터 처리 방법 두가지
- 배치 처리 : 단일 작업에서 함께 처리하기 전에 여러 데이터 레코드를 수집하고 저장
- 스트림 처리 : 데이터 원본을 지속적으로 모니터링하고 새 데이터 이벤트가 발생할 때 실시간으로 처리
1. 일괄 처리 이해하기
- 일괄 처리 장점
- 많은 양의 데이터를 편리한 시간에 처리할 수 있음
- 컴퓨터 또는 시스템이 유휴 상태일때 또는 사용량이 적은 시간에 실행되도록 예약할 수 있다.
- 일괄 처리 단점
- 데이터를 수집하고 결과를 가져오는 사이에 시간 지연 발생
- 일괄로 처리하려면 먼저 모든 일괄 작업의 입력 데이터를 준비해야 함. 일괄 작업 중에 발생하는 오류는 전체 프로세스를 중단 시킴.
2. 스트림 처리 이해
- 각각의 새로운 데이터가 도착할 때마다 처리됨.
- 일괄 처리와 달리, 다음 일괄 처리 주기까지 기다리지 않음
- 새로운 동적 데이터가 지속적으로 생성되는 시나리오에서 유용
3. 일괄 처리 및 스트리밍 데이터의 차이점 이해
일괄 처리 | 스트리밍 | |
데이터 범위 | 데이터 세트의 모든 데이터 처리 | 가장 최근에 수신한 데이터 또는 RTW(Roliing Time Window) 내에 있는 데이터에만 액세스 |
데이터 크기 | 대량의 데이터 세트 | 개별 레코드 또는 소수의 레코드 (소규모 일괄 처리) |
성능 | 몇 시간 | 몇 초, 몇 밀리초 |
분석 | 복잡한 분석을 수행하기 위함 | 단순 응답 함수, 집계, 계산 |
cf. 대기시간 : 데이터를 수신하고 처리하는데 소요되는 시간.
4. 일괄 처리 및 스트림 처리 결합
- 대규모 데이터 분석 아키텍처에서 일괄 처리 및 스트림 처리를 결합하는 과정
1) 스트리밍 데이터 원본의 데이터 이벤트가 실시간으로 캡쳐
2) 기타 소스의 데이터는 데이터 저장소(데이터 레이크)에 수집되었다가 일괄 처리
3) 실시간 분석이 필요하지 않은 경우, 캡처된 스트리밍 데이터가 데이터 저장소에 기록되었다가 추후에 일괄 처리됨.
4) 실시간 분석이 필요한 경우, 실시간 분석 또는 시각화를 위해 스트리밍 데이터를 준비하는데 스트림 처리 기술이 사용됨.
5) 비스트리밍 데이터는 주기적으로 일괄 처리되어 분석을 위해 준비되며, 그 결과는 기록 분석을 위해 분석 데이터 저장소(데이터 웨어하우스)에 유지됨.
6) 스트림 처리 결과는 기록 분석을 지원하기 위해 분석 데이터 저장소에 유지될 수도 있음
7) 분석 및 시각화 도구를 사용하여 실시간 데이터와 기록 데이터를 제공하고 탐색
참고)
일괄 처리 및 스트림 결합 데이터 처리에 흔히 사용되는 솔루션 아키텍처에는 람다와 델타 아키텍처가 있음.
[스트림 처리 아키텍처의 공통 요소 살펴보기]
1. 스트림 처리를 위한 일반 아키텍처
1) 이벤트에서 일부 데이터를 생성함. 이것은 센서에서 나오는 신호, 게시되는 소셜 미디어 메시지, 작성되는 로그 파일 항목 또는 일부 디지털 데이터를 생성하는 기타 항목 등
2) 생성되는 데이터는 처리를 위해 스트리밍 소스에 캡처됨. 간단한 경우에서는 클라우드 데이터 저장소의 폴더 또는 데이터베이스의 테이블이 소스일 수 있음. 보다 강력한 스트리밍 솔루션에서는 이벤트 데이터를 순서대로 처리하고 각 이벤트를 한번만 처리하도록 논리를 캡슐화하는 "큐"가 소스일 수 있음.
3) 이벤트 데이터는 특정 이벤트 유형을 위한 데이터를 선택하거나, 데이터 값을 산출하거나, 임시 기간 동안의 데이터 값을 집계하기 위해 이벤트 데이터에 작동하는 영구 쿼리에 의해 처리됨.
4) 스트림 처리 작업의 결과는 파일, 데이터베이스 테이블, 실시간 시각 대시보드 또는 추후 다운스트림 쿼리로 처리할 다른 큐가 될 수 있는 출력(싱크)에 작성됨.
2. 실시간 분석 서비스
- Microsoft는 스트리밍 데이터의 실시간 분석을 구현하는데 사용할 수 있는 여러 기술 지원
- Azure Stream Analytics : 스트리밍 원본에서 데이터를 수집하고 영구 쿼리를 적용하고 결과를 출력에 쓰는 스트리밍 작업을 정의하는데 사용할 수 있는 Paas 솔루션
- Spark 구조적 스트리밍 : Microsoft Fabric 및 Azure Databricks를 포함해 Apache Spark 기반 서비스에서 복잡한 스트리밍 솔루션을 개발할 수 있는 오픈 소스 라이브러리
- Microsoft Fabric : 데이터 엔지니어링, Data Factory, 데이터 과학, 실시간 분석 ,데이터 웨어하우스 및 데이터베이스를 포함하는 고성능 데이터베이스 및 분석 플랫폼
3. 스트림 처리를 위한 소스
- Azure에서 스트림 처리를 위해 데이터를 수집하는데 다음 서비스가 사용됨.
- Azure Event Hubs : 각 이벤트가 순서대로 정확히 한번 처리되도록 이벤트 데이터 큐를 관리하는데 사용할 수 있는 데이터 수집 서비스
- Azure IoT Hub : Azure Event Hubs와 유사한 데이터 수집 서비스이지만, IoT 디바이스의 이벤트 데이터를 관리하도록 최적화
- Azure Data Lake Store Gen 2 : 일괄 처리 시나리오에서 자주 사용되는 확장성이 뛰어난 스토리지 서비스. 스트리밍 데이터 원본으로도 사용 가능
- Apache Kafka : Apache Spark와 함께 일반적으로 사용되는 오픈 소스 데이터 수집 솔루션
4. 스트림 처리를 위한 싱크
- Azure Event Hubs : 추가 다운스트림 처리를 위해 처리된 데이터를 큐에 대기시키는데 사용됨.
- Azure Data Lake Store Gen 2, Microsoft OneLake 또는 Azure Blob Storage : 처리된 결과를 파일로 저장하는데 사용됨.
- Azure SQL Database, Azure Databricks 또는 Microsoft Fabric : 처리된 결과를 쿼리 및 분석을 위해 테이블에 저장하는데 사용됨.
- Microsoft Power BI : 보고서 및 대시보드에서 실시간 데이터 시각화를 생성하는데 사용됨.
[Microsoft Fabric 실시간 인텔리전스 살펴보기]
- 이벤트 기반 시나리오, 스트리밍 데이터 및 데이터 로그에 대한 엔드 투 엔드 솔루션 제공
- 기가바이트 또는 페타바이트 처리에 관계없이 모든 조직 데이터는 실시간 허브에 수렴됨.
- 코드 없는 커넥터는 다양한 원본의 시간 기반 데이터를 원활하게 연결하여 즉각적인 시각적 인사이트, 지리 공간적 분석 및 트리거 기반 반응을 가능하게 함.
- 실시간 인텔리전스는 데이터를 모든 Fabric 제품과 원활하게 일치시켜 전체 조직에서 가치를 구동하는 동적 실행 가능한 리소스로 변환함.
1. 실시간 허브
- 조직의 중앙 집중식 카탈로그 역할.
- 액세스, 추가, 탐색 및 데이터 공유를 간소화
- 데이터 원본을 확대하여 도메인 전체에서 인사이트와 시각적 명확성을 향상시킴.
- 데이터 가용성 및 접근성 보장
- 다양한 원본에서 스트리밍 데이터를 공유하면 조직 전체에서 포괄적인 비즈니스 인텔리전스를 실현할 수 있음
2. 실시간 인텔리전스를 사용하여 데이터 탐색
- 조직 또는 연결된 외/내부 원본에서 데이터 스트림을 선택한 다음, 실시간 인텔리전스 도구를 활용하여 데이터 탐색을 수행하고 데이터 패턴, 변칙 및 예측 수량을 시각화
[Apache Spark 구조적 스트리밍 살펴보기]
- 대규모 데이터 분석을 위한 분산 처리 프레임워크
- Spark on Microsoft Azure는 다음 서비스에서 사용할 수 있음
- Microsoft Fabric
- Azure Databricks
- Spark를 사용하여 여러 클러스터 노드에서 병렬로 코드를 실행하여 매우 많은 양의 데이터를 효율적으로 처리할 수 있음.
- 일괄 처리 및 스트림 처리 모두 사용할 수 있음
1. Spark Structured Streaming
- Spark에서 스트리밍 데이터를 처리하려면 영구 데이터 스트림의 결과를 수집, 처리 및 출력하기 위한 API를 제공하는 Spark Structed Streaming 라이브러리를 사용하면 됨
- 데이터 테이블을 캡슐화하는 데이터 프레임이라는 Spark의 유비쿼터스 구조를 기반으로 함.
- Spark Structured Streaming API를 사용하여 Kafka 허브, 파일 저장소 또는 네트워크 포트와 같은 실시간 데이터 원본에서 스트림의 새 데이터로 계속 채워지는 "바인딩되지 않은" 데이터 프레임으로 데이터를 읽음. 그 다음에는 데이터를 선택하거나 산출하거나 집계하는 데이터 프레임에 대한 쿼리를 정의함.
- 쿼리 결과는 분석 또는 추가 처리를 위해 유지될 수 있는 다른 데이터 프레임을 생성함.
- Spark기반 데이터 레이크 또는 분석 데이터 저장소에 통합해야 하는 경우 실시간 분석에 적합함.
2. Delta Lake
- 트랜잭션 일관성, 스키마 적용 및 기타 일반적인 데이터 웨어하우징 기능에 필요한 지원을 데이터 레이크 스토리지에 추가하는 오픈 소스 스토리지 계층
- 스트리밍 및 일괄 처리 데이터용 스토리지를 통합.
- Spark에서 일괄 처리 및 스트림 처리 모두에 대한 관계형 테이블을 정의하는데 사용할 수 있음.
- 스트림 처리 모두에 대한 관계형 테이블을 정의하는 데 사용할 수 있음.
- 스트림 처리에 사용되는 경우에는 Delta Lake 테이블을 실시간 데이터에 대한 쿼리의 스트리밍 소스 또는 데이터 스트림이 기록되는 싱크로 사용할 수 있음.
- Microsoft Fabric 및 Azure Databricks의 Spark 런타임에 Delta Lake 지원 포함됨.
- Spark Structured Streaming과 결합된 Delta Lake는 SQL 기반 쿼리 및 분석을 위해 관계형 스키마 뒤에 있는 데이터 레이크에서 일괄처리 및 스트림 처리된 데이터를 추상화해야 하는 경우 좋은 솔루션임.
음.. 뭔가 단원 순서가 좀 이상하지만 이 단원은 여기서 마무리
'Azure' 카테고리의 다른 글
[DP-900] 4. Microsoft Azure 데이터 기본 사항: Azure의 데이터 분석 탐색 - 데이터 시각화의 기본 사항 살펴보기 (0) | 2024.10.15 |
---|---|
[Azure] Synapse Access control의 User와 SQL User와 차이점 (0) | 2024.10.14 |
[Azure][Synapse] SQL 데이터베이스와 레이크 데이터베이스의 차이점 (1) | 2024.09.26 |
[DP-900] 4. Microsoft Azure 데이터 기본 사항: Azure의 데이터 분석 탐색 - 대규모 분석의 기본 사항 살펴보기 (3) | 2024.09.25 |
[Azure] DWU 의미 (0) | 2024.09.25 |