Skip to main content
참고 Spark Declarative Pipelines(SDP)의 기본 개념, Streaming Table과 Materialized View의 차이는 교육자료 → 데이터 엔지니어링 → SDP 를 참고하세요. 이 가이드는 프로덕션 운영 시 Full Refresh 방지 전략에 집중합니다.

왜 이 가이드가 필요한가

Lakeflow Declarative Pipeline(구 DLT)은 선언적으로 데이터 파이프라인을 정의하는 강력한 도구입니다. 하지만 파이프라인을 운영하다 보면, 사소한 수정 하나가 전체 데이터를 처음부터 다시 처리(Full Refresh) 하는 상황을 만들 수 있습니다. 이 문제는 단순히 “시간이 오래 걸린다”는 수준이 아닙니다.
주의 Streaming Table 의 Full Refresh는 체크포인트가 초기화되어 데이터 손실 또는 중복 위험이 있습니다. Materialized View 의 Full Recompute는 전체 소스를 다시 읽어 비용이 수십~수백 배 폭증 할 수 있습니다.
실제 프로덕션 환경에서 테라바이트급 테이블의 Full Refresh가 발생하면, 수 시간의 다운타임과 수천 달러의 추가 비용이 발생합니다. 이 가이드는 Full Refresh가 언제, 왜 발생하는지 정확히 이해하고, 이를 방지하거나 안전하게 관리 하는 전략을 제공합니다.

Streaming Table vs Materialized View: Full Refresh 비교

두 테이블 유형은 Full Refresh의 의미와 변동성가 근본적으로 다릅니다. 아래 테이블은 핵심 차이를 요약합니다. 핵심 시사점: Streaming Table은 “방지”에 집중해야 하고, Materialized View는 “최적화”에 집중해야 합니다. ST는 Full Refresh 자체를 막아야 하며, MV는 Enzyme이 incremental로 처리할 수 있도록 쿼리와 소스를 설계해야 합니다.

가이드 구성

이 가이드는 세 개의 서브페이지로 구성됩니다.

Streaming Table 증분 처리

Streaming Table에서 Full Refresh가 발생하는 정확한 조건, Full Refresh 없이 가능한 변경, 보호 설정(pipelines.reset.allowed), Append Flow 패턴, 체크포인트 복구 옵션을 다룹니다.

Materialized View 증분 처리

Enzyme(Databricks 내부 최적화 엔진)의 동작 원리, Full Recompute를 유발하는 5가지 원인, 소스 테이블 전제조건(Row Tracking, Deletion Vectors, CDF), 쿼리 설계 원칙, REFRESH POLICY(Beta)를 다룹니다.

CDC & 실전 체크리스트

APPLY CHANGES(AUTO CDC)를 활용한 SCD Type 1/2 패턴과, 파이프라인 설계/수정/모니터링을 위한 실전 체크리스트를 제공합니다.

파이프라인 삭제/변경 시 테이블 보호 (2026년 신규)

2026년 초에 파이프라인 삭제 및 변경 시 테이블을 보호하는 새로운 기능들이 추가되었습니다.

1. 파이프라인 삭제 시 테이블 유지 (cascade=false)

기존에는 파이프라인을 삭제하면 관련된 모든 Streaming Table, Materialized View, View가 함께 삭제되었습니다. 이제 cascade=false 옵션으로 파이프라인만 삭제하고 테이블은 유지할 수 있습니다.
상태: Beta (2026년 4월 기준). 기본값은 cascade=true(기존 동작 유지).

2. 비활성 테이블 자동 정리

파이프라인 정의에서 테이블을 제거하면(코드에서 CREATE STREAMING TABLE 삭제 등), 해당 테이블이 비활성(inactive) 상태가 됩니다. 새 옵션으로 이런 비활성 테이블을 자동으로 정리할 수 있습니다.
주의: 이 기능을 활성화하면, 파이프라인 정의에서 실수로 테이블을 제거했을 때 데이터가 삭제될 수 있습니다. 프로덕션에서는 신중하게 사용하세요.

3. Full Refresh 방지 (기존)

프로덕션 Streaming Table에는 반드시 설정:
이 설정이 있으면 실수로 Full Refresh를 실행해도 시스템이 거부합니다.

참고 자료

이 참고 자료들은 각 서브페이지에서도 맥락에 맞게 링크됩니다.