반응형

실시간 데이터 분석을 위한 고려 사항

배치 데이터와 스트리밍 데이터의 차이점

  • 데이터 처리는 프로세스를 통해 원시 데이터를 의미 있는 정보로 변환하는 것.
  • 데이터를 처리하는 일반적인 방법에는 두 가지가 있음.
  • 배치 처리 - 단일 작업에서 함께 처리하기 전에 여러 데이터 레코드를 수집하고 저장.
  • 스트림 처리 - 데이터 원본을 지속적으로 모니터링하고 새 데이터 이벤트가 발생할 때 실시간으로 처리.

 

배치 처리

  • 배치 처리에서는 새로 도착하는 데이터 요소가 수집 및 저장되고 전체 그룹이 일괄 처리로 함께 처리.
  • 각 그룹을 처리하는 정확한 시점을 여러 가지 방법으로 결정 가능.
  • 배치 처리의 장점
    - 많은 양의 데이터를 편리한 시간에 처리할 수 있음.
    - 컴퓨터 또는 시스템이 유휴 상태일 때(예: 야간) 또는 사용량이 적은 시간에 실행되도록 예약 가능.
  • 배치 처리의 단점
    - 데이터를 수집하고 결과를 가져오는 사이에 시간 지연이 발생.
    - 일괄로 처리하려면 먼저 모든 일괄 작업의 입력 데이터를 준비해야함.
    - 일괄 작업 중에 발생하는 데이터 문제, 오류 및 프로그램 충돌은 전체 프로세스를 중단시킴.
    - 입력 데이터를 신중하게 확인해야 작업을 다시 실행 가능.
    - 사소한 데이터 오류로 인해 일괄 처리 작업이 실행되지 않을 수 있음.

 

스트림 처리

  • 스트림 처리에서는 각각의 새로운 데이터가 도착할 때마다 처리됨.
  • 배치 처리와 달리, 다음 일괄 처리 주기까지 기다릴 수 없음.
  • 데이터가 한 번에 일괄로 처리되지 않고 개별 단위로 실시간으로 처리됨.
  • 스트림 데이터 처리는 새로운 동적 데이터가 지속적으로 생성되는 시나리오에서 유용함.
  • 스트림 처리는 즉각적인 실시간 응답이 필요하고 시간이 중요한 작업에 적합.

 

일괄 처리 및 스트리밍 데이터의 차이점 이해

  • 데이터 범위 - 배치 처리로 데이터 세트의 모든 데이터를 처리할 수 있음. 스트림 처리는 일반적으로 가장 최근에 수신한 데이터 또는 RTW(Rolling Time Window)(예: 지난 30초) 내에 있는 데이터에만 액세스 가능.
  • 데이터 크기 - 대량의 데이터 세트를 효율적으로 처리하는 데에는 배치 처리가 적합. 스트림 처리는 개별 레코드 또는 소수의 레코드로 이루어진 소규모 일괄 처리에 적합.
  • 성능 - 대기 시간은 데이터를 수신하고 처리하는 데 소요되는 시간을 의미. 배치 처리의 대기 시간은 일반적으로 몇 시간이나 스트림 처리는 일반적으로 즉시 이루어지며 대기 시간은 대략 초 단위 또는 몇 밀리초 단위.
  • 분석 - 일반적으로 복잡한 분석을 수행하기 위해 일괄 처리를 사용. 스트림 처리는 단순 응답 함수, 집계 또는 계산(예: 이동 평균)에 사용.

 

배치 처리 및 스트림 처리 결합

  • 대규모 분석 솔루션 대부분은 일괄 처리와 스트림 처리가 혼합되어 있어 기록 및 실시간 데이터 분석이 모두 가능.
  • 스트림 처리 솔루션은 실시간 데이터를 캡처하고, 이를 필터링 또는 집계하여 처리하고, 실시간 대시보드 및 시각화를 통해 표시하는 것이 일반적이지만 일괄 처리된 데이터와 함께 기록 분석을 위해 처리 결과를 데이터 저장소에 저장하기도 함.
  • 실시간 데이터 분석이나 시각화가 필요 없더라도 실시간 데이터를 캡처하여 추후 일괄 처리를 위해 데이터 저장소에 저장하는 데 스트리밍 기술이 사용되는 경우가 많음.

 

배치 처리 및 스트림 처리 결합

 

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

 

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는 스트리밍 원본에서 지속적으로 데이터를 캡처하고, 데이터를 필터링 또는 집계하고, 분석 및 보고를 위해 데이터 저장소 또는 다운스트림 프로세스로 결과를 보내야 하는 경우에 적합한 기술.

 

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 Data Explorer

 

 


 

이전

 

[Azure 자격증 - DP-900] Azure에서 분석 워크로드 설명 - Part 1

최신 데이터 웨어하우스의 일반적인 요소 데이터 수집 및 처리에 대한 고려 사항 대규모 데이터 웨어하우징 아키텍처는 이를 구현하는 데 사용되는 특정 기술과 마찬가지로 다를 수 있으나

epictrave.tistory.com

 

다음 글

 

[Azure 자격증 - DP-900] Azure에서 분석 워크로드 설명 - Part 3

마이크로 소프트의 파워 BI 데이터 시각화 파워 BI의 기능 Microsoft Power BI는 데이터 분석가가 비즈니스 사용자가 사용할 대화형 데이터 시각화를 빌드하는 데 사용할 수 있는 도구 및 서비스 모음

epictrave.tistory.com

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기