스트림 프로세싱(Stream Processing) 개요

qwer·2022년 3월 15일
1

BigData

목록 보기
1/2

스트림 프로세싱이란?

  • 스트림 프로세싱은 신규 데이터를 끊임없이 처리해 결과를 만들어내는 행위
  • 웹사이트 클릭로그, IoT 센서 데이터와 같이 시작과 끝이 없는 Unbounded 데이터를 입력으로 받아 다양한 쿼리 연산을 수행

스트림 프로세싱 vs 배치 프로세싱

배치 프로세싱스트림 프로세싱
데이터 종류Bounded data(끝이 있는 데이터)Unbounded data(끝이 없는 데이터)
처리 방식일정기간 단위로 수집 후 일괄 처리연속된 데이터를 하나씩 처리
처리량대규모 데이터 배치주로 소량의 레코드
성능몇 분 ~ 몇 시간 지연시간몇 초 또는 몇 밀리초의 지연 시간(준 실시간)
사용환경복잡한 분석이 요구되는 환경, 데이터 처리량이 많은 환경실시간 처리 및 분석 정보가 요구되는 환경
사용사례급여 및 청구 시스템 (ex. 1월 정산 데이터)이상 탐지(Anomaly Detection) 및 실시간 모니터링 시스템, SNS 데이터 분석
대표 제품Hadoop MapReduce, SparkSpark Streaming, Flink, Kafka Streams
  • 대부분의 배치 애플리케이션은 직관적이고 유지보수와 개발이 단순하고 스트리밍 시스템보다 높은 처리량을 가짐
  • 하지만 스트림 프로세싱은 대기시간이 짧아 애플리케이션이 빠르게 응답 가능
  • 자동으로 연산결과의 증분을 생성하므로 반복적인 배치 프로세싱보다 결과를 수정하는데 더 효율적

스트림 프로세싱 사례

모니터링 시스템

  • 플랫폼 전체 사용량, 시스템 부하, 신규 기능의 사용량 모니터링

실시간 제공용 데이터 갱신

  • 구글 애널릭틱스와 같이 각 페이지의 방문자 수를 연속적으로 추적하면서 최신 방문자 수를 갱신

이상 탐지

  • 사용자의 최근 이력 기준으로 트랜잭션이 부정행위에 속하는지 여부를 자동 판단

스트림 프로세싱 과제

  • 애플리케이션 이벤트 시간 기준으로 뒤섞인 데이터 처리
  • 대규모의 상태 정보유지
  • 높은 데이터 처리량 보장
  • 장애 상황에서 정확히 한번(Exactly once) 처리 보장
  • 부하 불균형과 뒤처진 서버 조작
  • 이벤트에 대한 빠른 응답
  • 출력 시스템에 데이터 저장 시 트랜잭션 보장

0개의 댓글