Databricks 자산 번들 배포 모드
이 문서에서는 Databricks 자산 번들 배포 모드의 구문을 설명합니다. 번들을 사용하면 Azure Databricks 워크플로를 프로그래밍 방식으로 관리할 수 있습니다. Databricks 자산 번들이란?
CI/CD 워크플로에서 개발자는 일반적으로 다양한 단계 또는 모드에서 솔루션을 코딩, 테스트, 배포 및 실행합니다. 예를 들어 가장 간단한 모드 집합에는 사전 프로덕션 유효성 검사를 위한 개발 모드와 유효성이 검사된 결과물에 대한 프로덕션 모드가 포함됩니다. Databricks 자산 번들은 이러한 각 모드에 해당하는 기본 동작의 선택적 컬렉션을 제공합니다. 특정 대상에 대해 이러한 동작을 사용하려면 구성 매핑에서 targets
대상을 설정 mode
하거나 구성 presets
합니다. 자세한 targets
내용은 번들 구성 대상 매핑을 참조 하세요.
개발 모드
개발 모드에서 번들을 배포하려면 먼저 매핑을 mode
의도한 대상에 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
자식 매핑으로 사용할 클러스터의 ID로 설정할compute_id
수bundle deploy
있습니다. - 작업 또는 품질 모니터와 같은 배포된 리소스에서 모든 일정 및 트리거를 일시 중지합니다. 으로 설정
schedule.pause_status
UNPAUSED
하여 개별 작업에 대한 일정 및 트리거를 일시 중지합니다. - 더 빠른 반복을 위해 배포된 모든 작업에서 동시 실행을 사용하도록 설정합니다. 으로 설정하여 개별 작업에 대한 동시 실행을 사용하지 않도록 설정합니다
max_concurrent_runs
1
. - 더 빠른 반복을 위해 배포 잠금을 사용하지 않도록 설정합니다. 이 잠금은 개발 모드에서 발생할 가능성이 없는 배포 충돌을 방지합니다. 로 설정하여 잠금을 다시 사용하도록 설정합니다
bundle.deployment.lock.enabled
true
.
프로덕션 모드
프로덕션 모드에서 번들을 배포하려면 먼저 매핑을 mode
의도한 대상에 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 지정을 참조하세요. 서비스 주체를 사용하지 않는 경우 다음과 같은 추가 동작을 확인합니다.- ,
file_path
또는root_path
state_path
매핑이artifact_path
특정 사용자에게 재정의되지 않는지 확인합니다. - 배포에
run_as
대한 특정 권한이 있는 ID를 명확히 하기 위해 매핑 및permissions
매핑이 지정되었는지 확인합니다.
- ,
매핑을 설정
mode
하기development
위한 이전 동작과 달리 매핑production
을 설정mode
해도 관련 번들 구성 파일에 지정된 기존 클러스터 정의를 재정의할 수 없습니다(예: 옵션 또는compute_id
매핑 사용--compute-id <cluster-id>
).
사용자 지정 사전 설정
Databricks 자산 번들은 대상에 대한 구성 가능한 사전 설정을 지원하므로 대상에 대한 동작을 사용자 지정할 수 있습니다. 사용 가능한 사전 설정은 다음 표에 나와 있습니다.
사전 설정 | 설명 |
---|---|
name_prefix |
리소스 이름 앞에 추가할 접두사 문자열입니다. |
pipelines_development |
파이프라인이 개발 모드인지 여부입니다. 유효한 값은 true 또는 false 입니다. |
trigger_pause_status |
모든 트리거 및 일정에 적용할 일시 중지 상태입니다. 유효한 값은 PAUSED 또는 UNPAUSED 입니다. |
jobs_max_concurrent_runs |
작업에 대해 허용되는 최대 동시 실행 수입니다. |
tags |
작업 및 실험을 포함하는 태그를 지원하는 모든 리소스에 적용되는 키:값 태그 집합입니다. Databricks 자산 번들은 리소스에 대한 schema 태그를 지원하지 않습니다. |
참고 항목
둘 다 mode
presets
설정된 경우 사전 설정은 기본 모드 동작을 재정의하고 개별 리소스의 설정은 사전 설정을 재정의합니다. 예를 들어 일정이 설정되어 UNPAUSED
있지만 trigger_pause_status
사전 설정이 설정된 PAUSED
경우 일정은 일시 중지되지 않습니다.
다음 예제에서는 명명 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