Flink?
Flink는 “스트림 기반(Stateful Stream Processing) 엔진"
배치도 할 수 있지만, 본질은 스트림이고 배치조차 “유한한 스트림”으로 보는 철학을 가짐.
Spark
- RDD 기반의 배치 중심 엔진에 스트리밍 기능이 붙어 있는 느낌(특히 Structured Streaming은 micro-batch 느낌이 강함)
Flink
- 처음부터 “무한 스트림 + 상태(State)”를 제대로 처리하려고 설계된 엔진
스트림 vs 배치의 본질적 차이
배치 처리
특징
- 배치는 “모든 데이터가 다 모여 있다”는 가정이 깔려 있음.
- 예를 들어 1년 치 로그 파일을 모아서, 그 위에 쿼리를 한 번 날리는 방식임.
- 시간은 보통 “컬럼 값”으로만 이용할 뿐, “지금 들어오고 있는 데이터의 시간 흐름” 자체를 신경 쓰지 않음.
특성
- 입력 데이터: 유한(finite)
- 처리 기준: 대부분 처리 시점(언제 돌리냐)
- 지연 데이터 개념이 약함: 이미 다 모인 후에 처리하니까
스트림 처리
특징