Databricks 자산 번들 배포 모드
이 문서에서는 Databricks 자산 번들 배포 모드의 구문을 설명합니다. 번들을 사용하면 Azure Databricks 워크플로를 프로그래밍 방식으로 관리할 수 있습니다. Databricks 자산 번들이란?을 참조하세요
CI/CD 워크플로에서 개발자는 일반적으로 다양한 단계 또는 모드에서 솔루션을 코딩, 테스트, 배포 및 실행합니다. 예를 들어, 가장 간단한 set 모드에는 사전 프로덕션 유효성 검사를 위한 개발 모드가 있으며, 이어서 유효성이 검사된 결과물을 위한 프로덕션 모드가 포함됩니다. Databricks 자산 번들은 이러한 각 모드에 해당하는 기본 동작의 선택적 컬렉션을 제공합니다. 특정 대상에 대해 이러한 동작을 사용하려면, set 및 mode
를 사용하거나 presets
구성 매핑에서 대상용 targets
를 구성하십시오. 자세한 targets
내용은 번들 구성 대상 매핑을 참조 하세요.
개발 모드
개발 모드에서 번들을 배포하려면 먼저 mode
매핑과 set에서 development
로의 연결을 의도한 대상에 추가해야 합니다. 예를 들어 명명된 dev
이 대상은 개발 대상으로 처리됩니다.
targets:
dev:
mode: development
명령을 실행하여 개발 모드에서 대상을 databricks bundle deploy -t <target-name>
배포하면 사전 설정을 사용하여 사용자 지정할 수 있는 다음 동작이 구현됩니다.
- 접두
[dev ${workspace.current_user.short_name}]
사를 사용하여 파일 또는 Notebook으로 배포되지 않은 모든 리소스 앞에 Azure Databricks 태그를 사용하여 배포된 각 작업 및 파이프라인에 태그를dev
추가합니다. - 모든 관련 배포된 Delta Live Tables 파이프라인을
development: true
로 표시합니다. - 관련 번들 구성 파일에 이미 지정된 모든 기존 클러스터 정의를 재정의
--compute-id <cluster-id>
하는 명령에 대한 관련 호출bundle deploy
에서 사용할 수 있습니다.--compute-id <cluster-id>
명령에 대한 관련 호출에서bundle deploy
사용하는 대신 여기에서 set 매핑을 사용하거나compute_id
매핑의 자식 매핑으로 사용할 클러스터의 ID에bundle
수 있습니다. - 작업 또는 품질 모니터와 같은 배포된 리소스에서 모든 일정 및 트리거를 일시 중지합니다. 으로 설정
schedule.pause_status
UNPAUSED
하여 개별 작업에 대한 일정 및 트리거를 일시 중지합니다. - 더 빠른 반복을 위해 배포된 모든 작업에서 동시 실행을 사용하도록 설정합니다. 으로 설정하여 개별 작업에 대한 동시 실행을 사용하지 않도록 설정합니다
max_concurrent_runs
1
. - 더 빠른 반복을 위해 배포 잠금을 사용하지 않도록 설정합니다. 이 잠금은 개발 모드에서 발생할 가능성이 없는 배포 충돌을 방지합니다. 로 설정하여 잠금을 다시 사용하도록 설정합니다
bundle.deployment.lock.enabled
true
.
프로덕션 모드
프로덕션 모드에서 번들을 배포하려면 먼저 의도한 대상에 mode
매핑을 추가하고, set에서 production
로 추가해야 합니다. 예를 들어 이름이 prod
인 이 대상은 프로덕션 대상으로 처리됩니다.
targets:
prod:
mode: production
명령을 실행하여 프로덕션 모드에서 대상을 배포하면 databricks bundle deploy -t <target-name>
다음 동작이 구현됩니다.
관련된 모든 배포된 Delta Live Tables 파이프라인이
development: false
로 체크되어 있는지 검증합니다.현재 Git 분기가 대상에 지정된 Git 분기와 같은지 확인합니다. 대상에서 Git 분기를 지정하는 것은 선택 사항이며 다음과 같이 추가
git
속성으로 수행할 수 있습니다.git: branch: main
배포하는 동안 지정하여 이 유효성 검사를 재정의
--force
할 수 있습니다.Databricks는 프로덕션 배포에 서비스 주체를 사용하는 것이 좋습니다. 서비스 주체로 설정
run_as
하여 이를 적용할 수 있습니다. 서비스 주체 관리 및 Databricks 자산 번들 워크플로에 대한 실행 ID 지정을 참조하세요. 서비스 주체를 사용하지 않는 경우 다음과 같은 추가 동작을 확인합니다.- ,
artifact_path
또는file_path
root_path
매핑이state_path
특정 사용자에게 재정의되지 않는지 확인합니다. - 배포에
run_as
대한 특정 권한이 있는 ID를 명확히 하기 위해 매핑 및permissions
매핑이 지정되었는지 확인합니다.
- ,
매핑을 설정
mode
하기development
위한 이전 동작과 달리 매핑mode
을 설정production
해도 관련 번들 구성 파일에 지정된 기존 클러스터 정의를 재정의할 수 없습니다(예: 옵션 또는--compute-id <cluster-id>
매핑 사용compute_id
).
사용자 지정 사전 설정
Databricks 자산 번들은 대상에 대한 구성 가능한 사전 설정을 지원하므로 대상에 대한 동작을 사용자 지정할 수 있습니다. 사용 가능한 사전 설정은 다음 table에 나열됩니다.
사전 설정 | 설명 |
---|---|
name_prefix |
리소스 이름 앞에 추가할 접두사 문자열입니다. |
pipelines_development |
파이프라인이 개발 모드인지 여부입니다. 유효한 values는 true 또는 false 입니다. |
trigger_pause_status |
모든 트리거 및 일정에 적용할 일시 중지 상태입니다. 유효한 values는 PAUSED 또는 UNPAUSED 입니다. |
jobs_max_concurrent_runs |
작업에 대해 허용되는 최대 동시 실행 수입니다. |
tags |
태그를 지원하는 모든 리소스에 적용되는 키:값 형식의 태그 집합 set에는 작업 및 실험이 포함됩니다. Databricks 자산 번들은 리소스에 대한 schema 태그를 지원하지 않습니다. |
source_linked_deployment |
나중에 사용하기 위해 예약됨. 배포 중에 생성된 리소스가 작업 공간 복사본 대신 작업 공간 소스 파일을 가리키는지 여부입니다. |
참고 항목
mode
및 presets
모두 set경우 사전 설정은 기본 모드 동작을 재정의하고 개별 리소스의 설정은 사전 설정을 재정의합니다. 예를 들어 일정이 setUNPAUSED
trigger_pause_status
사전 설정이 setPAUSED
경우 일정은 일시 중지되지 않습니다.
다음 예제에서는 명명 dev
된 대상에 대한 사용자 지정 사전 설정 구성을 보여 줍니다.
targets:
dev:
presets:
name_prefix: "testing_" # prefix all resource names with testing_
pipelines_development: true # set development to true for pipelines
trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
tags:
department: finance