다음을 통해 공유


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_idbundle 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_pathstate_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