24일차: Spark Structured Streaming

발행: (2025년 12월 24일 오후 09:05 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Cover image for Day 24: Spark Structured Streaming

Introduction

Spark 마스터리 시리즈의 Day 24에 오신 것을 환영합니다.
오늘은 Spark Structured Streaming을 사용한 실시간 데이터 파이프라인의 세계에 들어갑니다.

이미 Spark 배치를 알고 있다면 좋은 소식입니다:

스트리밍의 70 %를 이미 알고 있습니다.

왜 그런지 알아봅시다.

Structured Streaming = Continuous Batch

Spark은 이벤트를 하나씩 처리하지 않습니다. 작은 배치를 반복해서 처리하며, 이를 통해 다음을 제공합니다:

  • 장애 복구
  • 정확히 한 번(Exactly‑once) 보장
  • 높은 처리량

Why Structured Streaming Is Powerful

이전 Spark Streaming(DStreams)과 달리 Structured Streaming은:

  • DataFrame 사용
  • Catalyst 옵티마이저 활용
  • SQL 지원

또한 Delta Lake와 통합되어 프로덕션에 바로 사용할 수 있습니다.

Sources & Sinks

전형적인 실무 흐름:

Kafka → Spark → Delta → BI / ML

파일 스트림은 다음과 같은 경우에 유용합니다:

  • IoT 배치 파일 드롭
  • 랜딩 존
  • 테스트

Output Modes Explained Simply

  • Append – 새로운 행만 추가
  • Update – 변경된 행만 업데이트
  • Complete – 매번 전체 테이블 출력

대부분의 프로덕션 파이프라인은 append 또는 update 모드를 사용합니다.

Checkpointing = Safety Net

체크포인팅은 진행 상황을 저장하여 Spark이 다음을 할 수 있게 합니다:

  • 장애 후 재시작
  • 중복 방지
  • 상태 유지

체크포인팅이 없으면 파이프라인이 깨집니다.

First Pipeline Mindset

스트리밍을 무한한 DataFrame으로 생각하고 몇 초마다 처리합니다. 배치와 동일한 규칙이 적용됩니다:

  • 일찍 필터링
  • 셔플 최소화
  • UDF 사용 지양
  • 성능 모니터링

Summary

다룬 내용:

  • Structured Streaming이 무엇인지
  • 배치와 스트리밍 모델 차이
  • 소스와 싱크
  • 출력 모드
  • 트리거
  • 체크포인팅
  • 첫 스트리밍 파이프라인 구축

더 많은 콘텐츠를 원하시면 팔로우해 주세요. 놓친 부분이 있으면 알려 주세요. 감사합니다.

Back to Blog

관련 글

더 보기 »

주간 챌린지: 새해, 새로운 도전

새해 복 많이 받으세요, 여러분. 각 주마다 Mohammad S. Anwar가 The Weekly Challenge https://theweeklychallenge.org/를 보내며, 우리 모두가 해결책을 생각해볼 기회를 제공합니다.