스트리밍 프로세싱

우야·2021년 6월 15일
0
post-custom-banner

스트리밍 프로세싱이란

  • 연속되는 실시간 분석과 같은 스트리밍 분석(Streaming Analytics) 또는 실시간 분석(Realtime Analytics)에 사용되는 기술

  • 연속적으로 들어오는 데이터를 실시간으로 처리하는 것을 네이티브 스트림 처리라 하고, 작은 초단위로 처리되는것을 마이크로 스트림처리라고 한다.

  • 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 일괄 처리(Batch Processing)와 비교된다.

이점

  • 스트리밍 데이터를 활용하면 처리 속도가 빨라지기 때문에 데이터 공유와 분석에도 이점

스트리밍 프레임워크 종류

  1. 아파치 플링크

    • 스티림 데이터를 1초 이내의 짧은 간격으로 들어오는 데이터 처리 할때 사용
    • 데이터의 변형과 집계, 필터링하기 좋음
    • Exactly-once (정확하게 한 번의 전달만 보장)
  2. 아파치 스파크 스트림

    • 실시간 처리가 가능하나 최적화되어 있지 않음
    • 마이크로 배치(소규모 일괄처리)로 처리됨
    • 스트림 데이터를 초 단위로 잘라서 모여있는 데이터를 마이크로 배치 처리
    • 마이크로 배치의 장점으로 데이터 처리량이 높고, 운영 효용성과 비용측면에서도 유리
    • Exactly-once (정확하게 한 번의 전달만 보장)
  3. 아파치 카프카 스트림

    • 카프카 기능의 일부로 스트리밍 프로세싱을 위한 경량 라이브러리
    • 스파크, 플링크보다 강력하지 않음
    • Exactly-once (정확하게 한 번의 전달만 보장)
  4. 아파치 스톰

    • 초창기 오픈소스 스트림 프로세싱 프레임워크
    • 지연이 매우 짧고, 복잡하지 않은 스트림
    • 상태관리가 지원되지 않아 고급 분석에 제약
    • At-least-once(최소 한번의 전달 보장, 중복될수 있음)
    • 마이크로 배치처리인 스톰 트라이던트를 사용시 Exactly-once (정확하게 한 번의 전달만 보장)
  5. 아파치 삼자

    • 카프카와 밀접하게 연관되어 있어 다른제품과 연동이 어려움
    • At-least-once(최소 한번의 전달 보장, 중복될수 있음)

profile
Fullstack developer
post-custom-banner

0개의 댓글