이 문서는 데이터 엔지니어링 섹션의 일부입니다.
윈도우 유형 (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 증가로 지연시간이 늘어날 수 있습니다.