20

Structured Streaming: 무한 테이블 개념

Structured Streaming: 배치처럼 쓰는 스트리밍

학습 목표

Structured Streaming의 "무한 테이블" 개념을 이해한다 마이크로 배치 처리 방식을 파악한다 Output Mode의 차이를 구분한다

핵심 개념: 무한히 커지는 테이블

Structured Streaming은 스트림을 무한히 커지는 테이블로 본다.

에디터 로딩 중...

이 "무한 테이블"에 배치 쿼리를 계속 실행하는 것이 Structured Streaming이다.


마이크로 배치: 작은 배치의 연속

"스트리밍 = 아주 작은 배치를 계속 실행"

에디터 로딩 중...

왜 마이크로 배치인가?

  • 안정성: 배치 처리 로직 그대로 사용
  • 확장성: Spark의 병렬 처리 그대로
  • 내구성: 체크포인트로 장애 복구

3가지 Output Mode

결과를 어떻게 출력할지 결정한다.

Mode설명언제 사용?
Append새 행만 추가집계 없는 필터/변환
Update변경된 행만 출력집계 + 큰 결과셋
Complete전체 결과 덮어쓰기집계 + 작은 결과셋
에디터 로딩 중...

핵심 구성요소

에디터 로딩 중...

Checkpoint: 정확히 한 번 처리 보장

체크포인트 없이는 장애 시 데이터 손실 또는 중복!

에디터 로딩 중...

체크포인트에 저장되는 것:

  • 오프셋: 어디까지 읽었는지
  • 상태: 윈도우 집계 중간 결과
  • 메타데이터: 쿼리 설정
에디터 로딩 중...

실무 팁: 체크포인트 경로는 쿼리마다 고유해야 한다!