20분
Structured Streaming: 무한 테이블 개념
Structured Streaming: 배치처럼 쓰는 스트리밍
Structured Streaming: 무한 테이블 개념
Spark 심화: Streaming & Delta Lake > Structured Streaming: 배치처럼 쓰는 스트리밍
학습 목표
Structured Streaming의 "무한 테이블" 개념을 이해한다 마이크로 배치 처리 방식을 파악한다 Output Mode의 차이를 구분한다
핵심 개념: 무한히 커지는 테이블
Structured Streaming은 스트림을 무한히 커지는 테이블로 본다.
에디터 로딩 중...
이 "무한 테이블"에 배치 쿼리를 계속 실행하는 것이 Structured Streaming이다.
마이크로 배치: 작은 배치의 연속
"스트리밍 = 아주 작은 배치를 계속 실행"
에디터 로딩 중...
왜 마이크로 배치인가?
- 안정성: 배치 처리 로직 그대로 사용
- 확장성: Spark의 병렬 처리 그대로
- 내구성: 체크포인트로 장애 복구
3가지 Output Mode
결과를 어떻게 출력할지 결정한다.
| Mode | 설명 | 언제 사용? |
|---|---|---|
| Append | 새 행만 추가 | 집계 없는 필터/변환 |
| Update | 변경된 행만 출력 | 집계 + 큰 결과셋 |
| Complete | 전체 결과 덮어쓰기 | 집계 + 작은 결과셋 |
에디터 로딩 중...
핵심 구성요소
에디터 로딩 중...
Checkpoint: 정확히 한 번 처리 보장
체크포인트 없이는 장애 시 데이터 손실 또는 중복!
에디터 로딩 중...
체크포인트에 저장되는 것:
- 오프셋: 어디까지 읽었는지
- 상태: 윈도우 집계 중간 결과
- 메타데이터: 쿼리 설정
에디터 로딩 중...
실무 팁: 체크포인트 경로는 쿼리마다 고유해야 한다!