Databricks 자산 번들 배포 모드
이 문서에서는 Databricks 자산 번들 배포 모드의 구문을 설명합니다. 번들을 사용하면 Azure Databricks 워크플로를 프로그래밍 방식으로 관리할 수 있습니다. Databricks 자산 번들이란?을 참조하세요
CI/CD 워크플로에서 개발자는 일반적으로 다양한 단계 또는 모드에서 솔루션을 코딩, 테스트, 배포 및 실행합니다. 예를 들어 가장 간단한 모드 집합에는 사전 프로덕션 유효성 검사를 위한 개발 모드와 유효성이 검사된 결과물에 대한 프로덕션 모드가 포함됩니다. Databricks 자산 번들은 이러한 각 모드에 해당하는 기본 동작의 선택적 컬렉션을 제공합니다. 특정 대상에 대해 이러한 동작을 사용하려면 mode
을 설정하거나 presets
구성 매핑에서 대상에 대한 targets
을 구성하십시오. 자세한 targets
내용은 번들 구성 대상 매핑을 참조 하세요.
개발 모드
개발 모드에서 번들을 배포하려면, 먼저 mode
으로 설정된 development
매핑을 의도된 대상에 추가해야 합니다. 예를 들어 명명된 dev
이 대상은 개발 대상으로 처리됩니다.
targets:
dev:
mode: development
명령을 실행하여 개발 모드에서 대상을 databricks bundle deploy -t <target-name>
배포하면 다음 동작이 구현되며, 이는 사전 설정을 사용하여 사용자 지정할 수 있습니다.
- 파일이나 노트북으로 배포되지 않은 모든 리소스에 접두사
[dev ${workspace.current_user.short_name}]
를 붙이고, 배포된 각 작업 및 파이프라인에는dev
Azure Databricks 태그를 추가합니다. - 배포된 모든 관련 DLT 파이프라인을
development: true
표시합니다. - 관련 번들 구성 파일에 이미 지정된 모든 기존 클러스터 정의를 재정의하는
bundle deploy
명령에 대한 관련 호출에서--compute-id <cluster-id>
를 사용할 수 있도록 합니다.--compute-id <cluster-id>
명령에 대한 관련 호출에서bundle deploy
를 사용하는 대신, 여기에compute_id
매핑을 설정하거나bundle
매핑의 자식 매핑으로 설정하여 사용할 클러스터의 ID로 설정할 수 있습니다. - 작업 또는 품질 모니터와 같은 배포된 리소스에서 모든 일정 및 트리거를 일시 중지합니다. 으로 설정
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>
다음 동작이 구현됩니다.
배포된 모든 관련 DLT 파이프라인이
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
및permissions
매핑이 배포에 대한 특정 권한을 가진 ID를 명확히 하기 위해 지정되었는지 확인합니다.
-
이전에
mode
매핑을development
로 설정하는 방식과 달리,mode
매핑을production
로 설정하면 관련 번들 구성 파일에 지정된 기존 클러스터 정의를 재정의할 수 없습니다. 예를 들어,--compute-id <cluster-id>
옵션 또는compute_id
매핑을 사용하는 경우를 포함합니다.
사용자 지정 사전 설정
Databricks 자산 번들은 대상에 대한 구성 가능한 사전 설정을 지원하므로 대상에 대한 동작을 사용자 지정할 수 있습니다. 사용 가능한 사전 설정은 다음 표에 나와 있습니다.
사전 설정 | 설명 |
---|---|
name_prefix |
리소스 이름 앞에 추가할 접두사 문자열입니다. |
pipelines_development |
파이프라인이 개발 모드인지 여부입니다. 유효한 값은 true 또는 false . |
trigger_pause_status |
모든 트리거 및 일정에 적용할 일시 중지 상태입니다. 유효한 값은 PAUSED 또는 UNPAUSED . |
jobs_max_concurrent_runs |
작업에 대해 허용되는 최대 동시 실행 수입니다. |
tags |
모든 태그 지원 리소스에 적용되는 키:값 태그 집합으로, 작업 및 실험을 포함합니다. Databricks 자산 번들은 리소스에 대한 schema 태그를 지원하지 않습니다. |
source_linked_deployment |
나중에 사용하기 위해 예약됨. 배포 중에 생성된 리소스가 작업 공간 복사본 대신 작업 공간 소스 파일을 가리키는지 여부입니다. |
참고
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