개념
Databricks Declarative Automation Bundles (DABs) 는 Databricks 리소스(Jobs, Pipelines, 대시보드 등)를 코드로 정의하고 배포 하는 IaC(Infrastructure as Code) 도구입니다. YAML 파일로 리소스를 선언하고, databricks bundle CLI 명령어로 배포합니다.
명칭 변경: 2025년부터 Databricks Asset Bundles (DABs) 가 Declarative Automation Bundles 로 리브랜딩되었습니다. CLI 명령어(databricks bundle)와 설정 파일 구조는 동일합니다. 기존 문서나 블로그에서 “DABs”나 “Asset Bundles”로 언급되는 것은 같은 기능을 가리킵니다.
IaC(Infrastructure as Code)란? 인프라(서버, 데이터베이스, 파이프라인 등)를 수동으로 설정하는 대신, 코드(설정 파일)로 정의 하여 자동으로 배포하는 방식입니다. 코드이므로 Git으로 버전 관리할 수 있고, 코드 리뷰를 통해 변경 사항을 검토할 수 있으며, 여러 환경(dev, staging, prod)에 동일한 구성을 일관되게 배포할 수 있습니다.
1. 왜 DABs가 필요한가
수동 배포(UI 클릭)의 고려사항
실제 엔터프라이즈 환경에서 UI로만 Databricks 리소스를 관리하면 다음과 같은 문제가 발생합니다.IaC가 이 문제를 해결하는 방법
DABs는 모든 리소스 정의를 YAML 파일로 관리합니다. Git에 커밋되는 순간 다음 모든 것이 자동으로 확보됩니다.- 버전 이력 — 언제, 누가, 무엇을 바꿨는지
git log로 확인 - 코드 리뷰 — PR(Pull Request)을 통해 변경 사항을 팀이 검토
- 재현 가능성 — 동일 YAML로 어느 환경에나 동일한 리소스 생성
- 자동화 — CI/CD 파이프라인에서 배포 자동 실행
DABs vs Terraform — 무엇을 선택해야 하나
권장 패턴: 클라우드 인프라(VPC, 서브넷, IAM Role)는 Terraform으로, Databricks 워크로드(Jobs, Pipelines, Dashboards)는 DABs로 관리합니다.
2. 핵심 개념
Bundle 구조
DABs 프로젝트의 핵심은databricks.yml이라는 메인 설정 파일입니다. 이 파일을 중심으로 전체 번들이 구성됩니다.
핵심 4대 구성 요소
Variables (변수)
변수는 두 가지 방식으로 값을 받습니다.${var.변수명} 형식을 사용합니다. Bundle 자체 메타데이터는 ${bundle.name}, ${bundle.target} 으로 참조할 수 있습니다.
3. 프로젝트 초기화
databricks bundle init
Databricks CLI가 제공하는 공식 템플릿으로 프로젝트를 빠르게 시작할 수 있습니다.공식 내장 템플릿
4. 주요 리소스 유형
4-1. Jobs
${resources.pipelines.medallion.id} 처럼 다른 리소스를 참조할 수 있습니다. DABs가 배포 순서를 자동으로 결정합니다.
4-2. Pipelines (DLT, Delta Live Tables)
4-3. Dashboards (AI/BI 대시보드)
대시보드도 YAML로 코드화하여 Git 관리가 가능합니다.*.lvdash.json)은 Databricks UI에서 “Export as code” 기능으로 추출합니다.