이 문서는 데이터 엔지니어링 섹션의 일부입니다.
왜 파이프라인 설정이 중요한가?
SDP(Spark Declarative Pipelines, 구 Delta Live Tables)는 파이프라인의 실행 모드, 클러스터 구성, 타겟 카탈로그, 채널 등을 설정을 통해 제어합니다. 올바른 설정은 개발 생산성, 프로덕션 안정성, 비용 효율성에 직접적인 영향을 미칩니다.Development vs Production 모드
SDP는 두 가지 실행 모드를 제공하며, 각 모드는 파이프라인의 동작 방식이 크게 다릅니다.Development 모드에서 검증을 완료한 후 Production 모드로 전환합니다.
🔥 현업 사례: Development 모드와 Production 모드를 혼동해서 데이터를 날린 경험 한 고객사의 데이터 엔지니어가 프로덕션 파이프라인을 수정한 후, Development 모드인 줄 모르고 “Start” 버튼 을 눌렀습니다. Development 모드에서는 기존 테이블을 삭제하고 샘플 데이터만으로 재생성하기 때문에, 프로덕션 Gold 테이블 3개의 데이터가 샘플 2개 파일 분량으로 대체 되었습니다. 마침 BI 대시보드가 이 테이블을 참조하고 있었고, 경영진이 “매출이 갑자기 99% 줄었다”고 보고받는 사태가 벌어졌습니다. 복구 과정: Delta의 Time Travel 기능(RESTORE TABLE ... TO VERSION AS OF)으로 데이터를 복구했지만, 원인 파악과 복구에 약 2시간이 소요되었습니다. 재발 방지책:
- 프로덕션 파이프라인은 반드시
"development": false로 고정(UI에서 변경 불가하도록)- 개발용과 프로덕션용 파이프라인을 물리적으로 분리(같은 파이프라인에서 모드 전환 금지)
- 프로덕션 파이프라인은 Asset Bundles로만 배포(UI 직접 수정 금지)
안전한 개발-프로덕션 분리 패턴
현업에서 권장하는 패턴은 같은 코드, 다른 파이프라인 입니다.databricks bundle deploy -t dev와 databricks bundle deploy -t prod로 완전히 분리된 파이프라인이 생성되어, 모드 혼동 사고를 원천 차단할 수 있습니다.
클러스터 설정
서버리스 컴퓨트
서버리스를 선택하면 클러스터 구성을 직접 관리할 필요가 없습니다. Databricks가 자동으로 인프라를 프로비저닝합니다.Job Cluster (클래식)
세밀한 클러스터 제어가 필요한 경우 직접 클러스터를 구성합니다.Auto Scaling 설정
Enhanced Autoscaling의 실전 효과
SDP의 Enhanced Autoscaling 은 일반 클러스터의 Autoscaling과 다릅니다. 파이프라인의 데이터 흐름 단계를 이해하고, 각 단계에서 필요한 만큼만 노드를 할당 합니다.💡 현업 팁: Enhanced Autoscaling의 효과가 가장 극적인 경우는 “Bronze에서 대량 수집 → Silver에서 소량 변환 → Gold에서 집계” 패턴입니다. Bronze 단계에서 10개 노드가 필요해도, Gold 단계에서는 2개면 충분합니다. Enhanced Autoscaling은 이 차이를 자동으로 감지하여 노드를 줄입니다.
Channel (채널) 설정
채널은 SDP 런타임의 버전 을 결정합니다. 신기능 테스트와 프로덕션 안정성 사이의 균형을 맞출 수 있습니다.타겟 카탈로그/스키마 설정
Unity Catalog 통합
SDP 파이프라인의 결과 테이블을 Unity Catalog에 저장합니다.
위 설정으로 파이프라인 내에서
CREATE STREAMING TABLE orders를 실행하면 production.sales_data.orders로 생성됩니다.
💡 카탈로그/스키마를 파이프라인 레벨에서 설정하면, 개별 테이블 정의에서 3단계 네임스페이스를 매번 작성할 필요가 없습니다.
파이프라인 설정 전체 예제
JSON 설정
YAML 설정 (Asset Bundles)
주요 설정 옵션 총정리
configuration 매개변수 활용
configuration에 정의한 값은 파이프라인 코드에서 spark.conf.get()으로 접근할 수 있습니다.
Continuous 모드 vs Triggered 모드
⚠️ Continuous 모드는 항상 클러스터가 실행 중이므로 비용이 지속적으로 발생합니다. 실시간 요구사항이 없다면 Triggered 모드 + 스케줄링을 권장합니다.
실전 비용 비교: Continuous vs Triggered
현업에서 가장 많이 묻는 질문이 “Continuous 모드 비용이 얼마나 되나요?”입니다.💡 현업 팁: 대부분의 내부 분석/BI 용도에서는 15분~1시간 지연이 허용 됩니다. “실시간이 필요하다”고 요청하는 경우에도, 실제로 확인해 보면 “1시간 이내면 충분”인 경우가 80% 이상입니다. Continuous 모드는 정말 분 단위 지연이 비즈니스에 직접적인 영향을 미치는 경우(사기 탐지, 실시간 추천 등)에만 사용하세요.
서버리스 SDP의 비용 예측 방법
서버리스 SDP는 인프라를 자동 관리하지만, 비용 예측이 어렵다는 현업의 피드백이 있습니다.비용 구성 요소
비용 예측을 위한 실전 공식
🔥 현업에서는: 서버리스 SDP 비용을 정확히 예측하기 어려우므로, 첫 달은 클래식(Job Cluster)과 서버리스를 병렬로 돌려서 비용을 비교 하는 것을 권장합니다. 한 고객사에서는 서버리스 전환 후 비용이 20% 절감된 반면, 다른 고객사에서는 10% 증가한 사례도 있었습니다. 워크로드 특성에 따라 다르므로 반드시 직접 비교 테스트를 하세요.