Skip to main content
이 문서는 데이터 엔지니어링 섹션의 일부입니다.

윈도우 유형 (Window Types)

스트리밍 집계에서 시간 기반 윈도우 는 데이터를 시간 구간별로 그룹화하는 핵심 메커니즘입니다. Structured Streaming은 3가지 윈도우 유형을 지원합니다.

Tumbling Window (고정 윈도우)

겹치지 않는 고정 크기 윈도우입니다. 각 이벤트는 정확히 하나의 윈도우에만 속합니다.

Sliding Window (슬라이딩 윈도우)

윈도우가 겹치는 구간 집계입니다. 하나의 이벤트가 여러 윈도우에 속할 수 있습니다.

Session Window (세션 윈도우)

활동 간 간격(gap) 기반으로 동적 크기의 윈도우를 생성합니다. 이벤트 간 gap이 임계값을 초과하면 새 세션이 시작됩니다.

윈도우 유형 비교


Output Mode 심화

writeStream의 outputMode결과 테이블의 어떤 행을 싱크에 쓸 것인지 를 결정합니다.
⚠️ Complete Mode 주의: 결과 테이블 전체를 매번 다시 쓰므로, 결과가 소규모(수천 행 이하)인 경우에만 사용하세요. 대규모 결과에 사용하면 성능이 급격히 저하됩니다.

Change Data Feed (CDF)

Change Data Feed(CDF) 는 Delta 테이블에서 발생한 행 수준 변경사항(INSERT, UPDATE, DELETE)을 스트리밍으로 읽을 수 있게 해주는 기능입니다. CDC 파이프라인의 핵심 기술입니다.

CDF가 필요한 이유

일반적인 readStream으로 Delta 테이블을 읽으면 새로 추가된 행(Append)만 볼 수 있습니다. UPDATE나 DELETE는 감지할 수 없습니다. CDF를 활성화하면 모든 변경 유형 을 스트림으로 처리할 수 있습니다.

CDF 활성화

CDF 스트림 읽기

CDF 변경 유형

CDF 활용: SCD Type 2 파이프라인

CDF와 다른 기능의 관계

💡 CDF vs CDC: CDF(Change Data Feed)는 Delta 테이블 내부의 변경 추적 기능이고, CDC(Change Data Capture)는 외부 DB의 변경을 캡처 하는 기술입니다. Lakeflow Connect가 외부 CDC를 캡처하면, 그 결과를 CDF가 활성화된 Delta 테이블에 저장하여 다운스트림에 전파하는 패턴이 일반적입니다.

State Store 관리

윈도우 집계, 스트림 조인 등 상태 기반 연산 은 내부적으로 State Store 에 중간 상태를 저장합니다. 프로덕션에서 가장 흔한 스트리밍 문제는 State Store 크기 증가 입니다.

State Store가 커지는 원인

State Store 모니터링

⚠️ State Store OOM: State Store가 메모리를 초과하면 RocksDB State Store Backend로 디스크에 spill됩니다. Databricks는 기본적으로 RocksDB를 사용하므로 OOM은 드물지만, 디스크 I/O 증가로 지연시간이 늘어날 수 있습니다.

참고 링크