본문 바로가기
Data Engineering/Flink

스트림처리와 Apache Flink

by 홍띠 2025. 1. 26.
ververica academy 영상 을 보고 정리한 글

Stream Processing

  • 이벤트 데이터가 연속적이고 순차적으로 in/out될수 있도록 하며, 데이터가 들어오면 즉각적으로 processing됨
  • Fault tolerance를 보장하기 위해서 주기적으로 상태를 체크하고 저장
  • 각 이벤트는 독립적으로 처리됨
  • Usecase
    • 실시간 데이터파이프라인
    • 실시간 분석
    • 머신러닝
    • event-driven 어플리케이션

Apache Flink

  • Fault tolerance와 exactly-once가 보장되는 오픈소스 stream processing 시스템
    • Checkpoint를 가지고 fault tolerance를 자동으로 보장
  • 실시간 데이터 처리와 batch 데이터 처리가 모두 지원됨
  • 다양한 API를 제공해서 여러 사용사례에 적합하게 사용됨
    • Datastream API
      • low levelAPI로, stateful한 처리를 위해서 사용되며, stream의 state와 time을 다룸
    • Relational API
      • 데이터 분석을 위해서 SQL API와 TableAPI를 사용할 수 있음
      • batch, streaming data에 통합적으로 사용가능
    • Flink’s stateful functions API (aka Statefun)
      • 분산된 stateful application 구축을 지원

Batch vs Streaming

Batch Streaming
단계별로 실행 전체 파이프라인이 계속 실행
input 전 sorting가능 데이터가 들어오면 무조건 받음
마지막 단계가 끝나면 결과가 나옴 결과가 바로 나옴
간단한 전략으로도 실패에 대한 처리 가능 robust 메커니즘을 사용해야함