반응형
실시간 데이터 분석을 위한 고려 사항
배치 데이터와 스트리밍 데이터의 차이점
- 데이터 처리는 프로세스를 통해 원시 데이터를 의미 있는 정보로 변환하는 것.
- 데이터를 처리하는 일반적인 방법에는 두 가지가 있음.
- 배치 처리 - 단일 작업에서 함께 처리하기 전에 여러 데이터 레코드를 수집하고 저장.
- 스트림 처리 - 데이터 원본을 지속적으로 모니터링하고 새 데이터 이벤트가 발생할 때 실시간으로 처리.
배치 처리
- 배치 처리에서는 새로 도착하는 데이터 요소가 수집 및 저장되고 전체 그룹이 일괄 처리로 함께 처리.
- 각 그룹을 처리하는 정확한 시점을 여러 가지 방법으로 결정 가능.
- 배치 처리의 장점
- 많은 양의 데이터를 편리한 시간에 처리할 수 있음.
- 컴퓨터 또는 시스템이 유휴 상태일 때(예: 야간) 또는 사용량이 적은 시간에 실행되도록 예약 가능. - 배치 처리의 단점
- 데이터를 수집하고 결과를 가져오는 사이에 시간 지연이 발생.
- 일괄로 처리하려면 먼저 모든 일괄 작업의 입력 데이터를 준비해야함.
- 일괄 작업 중에 발생하는 데이터 문제, 오류 및 프로그램 충돌은 전체 프로세스를 중단시킴.
- 입력 데이터를 신중하게 확인해야 작업을 다시 실행 가능.
- 사소한 데이터 오류로 인해 일괄 처리 작업이 실행되지 않을 수 있음.
스트림 처리
- 스트림 처리에서는 각각의 새로운 데이터가 도착할 때마다 처리됨.
- 배치 처리와 달리, 다음 일괄 처리 주기까지 기다릴 수 없음.
- 데이터가 한 번에 일괄로 처리되지 않고 개별 단위로 실시간으로 처리됨.
- 스트림 데이터 처리는 새로운 동적 데이터가 지속적으로 생성되는 시나리오에서 유용함.
- 스트림 처리는 즉각적인 실시간 응답이 필요하고 시간이 중요한 작업에 적합.
일괄 처리 및 스트리밍 데이터의 차이점 이해
- 데이터 범위 - 배치 처리로 데이터 세트의 모든 데이터를 처리할 수 있음. 스트림 처리는 일반적으로 가장 최근에 수신한 데이터 또는 RTW(Rolling Time Window)(예: 지난 30초) 내에 있는 데이터에만 액세스 가능.
- 데이터 크기 - 대량의 데이터 세트를 효율적으로 처리하는 데에는 배치 처리가 적합. 스트림 처리는 개별 레코드 또는 소수의 레코드로 이루어진 소규모 일괄 처리에 적합.
- 성능 - 대기 시간은 데이터를 수신하고 처리하는 데 소요되는 시간을 의미. 배치 처리의 대기 시간은 일반적으로 몇 시간이나 스트림 처리는 일반적으로 즉시 이루어지며 대기 시간은 대략 초 단위 또는 몇 밀리초 단위.
- 분석 - 일반적으로 복잡한 분석을 수행하기 위해 일괄 처리를 사용. 스트림 처리는 단순 응답 함수, 집계 또는 계산(예: 이동 평균)에 사용.
배치 처리 및 스트림 처리 결합
- 대규모 분석 솔루션 대부분은 일괄 처리와 스트림 처리가 혼합되어 있어 기록 및 실시간 데이터 분석이 모두 가능.
- 스트림 처리 솔루션은 실시간 데이터를 캡처하고, 이를 필터링 또는 집계하여 처리하고, 실시간 대시보드 및 시각화를 통해 표시하는 것이 일반적이지만 일괄 처리된 데이터와 함께 기록 분석을 위해 처리 결과를 데이터 저장소에 저장하기도 함.
- 실시간 데이터 분석이나 시각화가 필요 없더라도 실시간 데이터를 캡처하여 추후 일괄 처리를 위해 데이터 저장소에 저장하는 데 스트리밍 기술이 사용되는 경우가 많음.
- 스트리밍 데이터 원본의 데이터 이벤트가 실시간으로 캡처됨.
- 기타 소스의 데이터는 데이터 저장소(흔히 데이터 레이크)에 수집되었다가 일괄 처리됨.
- 실시간 분석이 필요하지 않은 경우에는 캡처된 스트리밍 데이터가 데이터 저장소에 기록되었다가 추후에 일괄 처리됨.
- 실시간 분석이 필요한 경우에는 실시간 분석 또는 시각화를 위해 스트리밍 데이터를 준비하는 데 스트림 처리 기술이 사용되고, 임시 창에서 데이터를 필터링하거나 집계하는 경우가 많음.
- 비스트리밍 데이터는 주기적으로 일괄 처리되어 분석을 위해 준비되며, 그 결과는 기록 분석을 위해 분석 데이터 저장소(데이터 웨어하우스라고도 함)에 유지됨.
- 스트림 처리 결과는 기록 분석을 지원하기 위해 분석 데이터 저장소에 유지될 수도 있음.
- 분석 및 시각화 도구를 사용하여 실시간 데이터와 기록 데이터를 제공하고 탐색함.
Azure Stream Analytics, Azure Synapse Data Explorer 및 스파크 구조 스트리밍를 비롯한 실시간 분석 기술
Azure Stream Analytics
- 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는 스트리밍 원본에서 지속적으로 데이터를 캡처하고, 데이터를 필터링 또는 집계하고, 분석 및 보고를 위해 데이터 저장소 또는 다운스트림 프로세스로 결과를 보내야 하는 경우에 적합한 기술.
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 Structured Streaming 라이브러리를 사용하면 됨.
- Spark Structured Streaming은 데이터 테이블을 캡슐화하는 데이터 프레임이라는 Spark의 유비쿼터스 구조를 기반으로 함.
- Spark Structured Streaming API를 사용하여 Kafka 허브, 파일 저장소 또는 네트워크 포트와 같은 실시간 데이터 원본에서 스트림의 새 데이터로 계속 채워지는 바인딩되지 않은 데이터 프레임으로 데이터를 읽음.
- 그 다음에는 데이터를 선택하거나, 산출하거나, 집계하는 데이터 프레임에 대한 쿼리를 정의함.
- 쿼리 결과는 분석 또는 추가 처리를 위해 유지될 수 있는 다른 데이터 프레임을 생성함. - Delta Lake
- Delta Lake는 트랜잭션 일관성, 스키마 적용 및 기타 일반적인 데이터 웨어하우징 기능에 필요한 지원을 데이터 레이크 스토리지에 추가하는 오픈 소스 스토리지 계층임.
- 스트리밍 및 일괄 처리 데이터용 스토리지를 통합하며, Spark에서 일괄 처리 및 스트림 처리 모두에 대한 관계형 테이블을 정의하는 데 사용 가능.
- 스트림 처리에 사용되는 경우에는 Delta Lake 테이블을 실시간 데이터에 대한 쿼리의 스트리밍 소스 또는 데이터 스트림이 기록되는 싱크로 사용 가능.
- Azure Synapse Analytics 및 Azure Databricks의 Spark 런타임에는 Delta Lake 지원이 포함됨.
- Spark Structured Streaming과 결합된 Delta Lake는 SQL 기반 쿼리 및 분석을 위해 관계형 스키마 뒤에 있는 데이터 레이크에서 배치 처리 및 스트림 처리된 데이터를 추상화해야 하는 경우 좋은 솔루션임.
Azure Data Explorer
- Azure Data Explorer는 데이터를 효율적으로 분석하기 위한 독립 실행형 Azure 서비스.
- 웹 사이트, 애플리케이션, IoT 디바이스 등과 같은 데이터 원본의 다양한 데이터를 대량으로 분석하기 위한 출력으로 사용 가능.
- Azure Synapse Data Explorer라고도 하는 Azure Synapse Analytics에서 런타임으로 캡슐화되므로 단일 작업 영역에서 SQL, Spark 및 데이터 탐색기 분석을 결합하는 분석 솔루션을 빌드하고 관리 가능.
- 데이터는 하나 이상의 커넥터를 통해 또는 최소한의 코드만 작성하여 데이터 탐색기에 수집됨.
- 이를 통해 정적 원본과 스트리밍 원본을 모두 포함하는 다양한 데이터 원본에서 데이터를 신속하게 수집 가능.
- 데이터 탐색기는 데이터 수집을 최적화하기 위해 거의 실시간으로 배치 처리 및 스트리밍을 지원함.
- 수집된 데이터는 데이터 탐색기 데이터베이스의 테이블에 저장되며, 여기서 자동 인덱싱을 통해 고성능 쿼리를 사용 가능.
- 시계열 요소를 포함하는 실시간 또는 배치 처리 데이터를 캡처 및 분석과 직관적이고 강력한 KQL(Kusto 쿼리 언어)을 사용하여 데이터를 빠르게 탐색, 필터링 및 집계에 적합.
- 데이터 탐색기 테이블을 쿼리하려면, 특히 타임스탬프 특성이 포함된 원격 분석 데이터에는 빠른 읽기 성능에 최적화된 언어인 KQL(Kusto Query Language)을 사용 가능.
- 가장 기본적인 KQL 쿼리는 단순히 테이블 이름으로 구성됨.
- Kusto 쿼리 언어는 데이터 분석가가 데이터 탐색기 데이터베이스에 캡처되고 저장된 데이터에서 신속하게 인사이트를 얻을 수 있도록 하는 다기능이면서도 직관적인 언어임.
이전 글
다음 글
반응형
'Azure > DP-900' 카테고리의 다른 글
[Azure 자격증 - DP-900] DP-900 시험 후기 (1) | 2023.01.05 |
---|---|
[Azure 자격증 - DP-900] Azure에서 분석 워크로드 설명 - Part 3 (0) | 2022.07.03 |
[Azure 자격증 - DP-900] Azure에서 분석 워크로드 설명 - Part 1 (0) | 2022.07.03 |
[Azure 자격증 - DP-900] Azure에서 비관계형 데이터 작업에 대한 고려 사항 설명 (0) | 2022.07.03 |
[Azure 자격증 - DP-900] Azure에서 관계형 데이터에 대한 고려 사항 - Part 2 (0) | 2022.07.02 |
최근댓글