다음을 통해 공유


bundle 명령 그룹

참고 항목

이 정보는 Databricks CLI 버전 0.205 이상에 적용됩니다. Databricks CLI는 공개 미리 보기제공됩니다.

Databricks CLI 사용은 사용량 현황 데이터 프로비저닝을 포함하여 Databricks 라이선스Databricks 개인 정보 보호 고지의 적용을 받습니다.

bundle 내의 명령 그룹을 사용하면 Azure Databricks 작업, Delta Live Tables 파이프라인MLOps 스택과 같은 Azure Databricks 워크플로의 유효성을 프로그래밍 방식으로 유효성 검사, 배포 및 실행할 수 있습니다. Databricks 자산 번들이란?을 참조하세요.

bundle 명령을 databricks bundle에 추가하여 실행합니다. bundle 명령에 대한 도움말을 표시하려면 databricks bundle -h를 실행합니다.

프로젝트 템플릿에서 번들 만들기

Python용 기본 Databricks 자산 번들 템플릿을 사용하여 Databricks 자산 번들을 만들려면 다음과 같이 명령을 실행 bundle init 한 다음 화면 프롬프트에 응답합니다.

databricks bundle init

사용자 지정 Databricks 자산 번들 템플릿을 사용하여 Databricks 자산 번들을 만들려면 다음과 같이 명령을 실행 bundle init 합니다.

databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"

다음을 참조하세요.

번들 구성 스키마 표시

번들 구성 스키마를 표시하려면 다음과 같이 명령을 실행 bundle schema 합니다.

databricks bundle schema

Databricks 자산 번들 구성 스키마를 JSON 파일로 출력하려면 bundle schema 명령을 실행하고 출력을 JSON 파일로 리디렉션합니다. 예를 들어 다음과 같이 현재 디렉터리 내에 bundle_config_schema.json이라는 이름의 파일을 생성할 수 있습니다.

databricks bundle schema > bundle_config_schema.json

번들 유효성 검사

번들 구성 파일이 구문적으로 올바른지 확인하려면 다음과 같이 번들 프로젝트 루트에서 bundle validate 명령을 실행합니다.

databricks bundle validate

기본적으로 이 명령은 번들 ID의 요약을 반환합니다.

Name: MyBundle
Target: dev
Workspace:
  Host: https://my-host.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/MyBundle/dev

Validation OK!

참고 항목

bundle validate 명령은 해당 개체의 스키마에서 찾을 수 없는 번들 구성 파일에 리소스 속성이 정의된 경우 경고를 출력합니다.

번들의 ID 및 리소스에 대한 요약만 출력하려면 번들 요약을 사용합니다.

번들 트리를 작업 영역에 동기화

bundle sync 명령을 사용하여 로컬 파일 시스템 디렉터리 내의 번들 파일 변경 내용을 원격 Azure Databricks 작업 영역 내의 디렉터리로 단방향 동기화를 수행합니다.

참고 항목

bundle sync 명령은 원격 Azure Databricks 작업 영역 내의 디렉터리에서 로컬 파일 시스템 내의 디렉터리로 파일 변경 내용을 동기화할 수 없습니다.

databricks bundle sync 명령은 databricks sync 명령과 동일한 방식으로 작동하며 생산성 편의를 위해 제공됩니다. 명령 사용 정보는 동기화 명령 그룹을 참조하세요.

번들 구성 파일 생성

bundle generate 명령을 사용하여 Databricks 작업 영역에 이미 있는 작업, 파이프라인 또는 대시보드에 대한 리소스 구성을 생성할 수 있습니다. 이 명령은 번들 프로젝트의 폴더에서 작업, 파이프라인 또는 대시보드에 대한 파일을 생성 *.yml 하고 구성에서 resources 참조되는 Notebook과 같은 모든 파일을 다운로드합니다.

작업 또는 파이프라인 구성 생성

Important

bundle generate 명령은 리소스 구성을 자동으로 생성하는 편의를 위해 제공됩니다. 그러나 이 작업 또는 파이프라인 구성이 번들에 포함되고 배포되면 새 리소스를 만들고 처음 사용되지 않는 한 bundle deployment bind 기존 리소스를 업데이트하지 않습니다. 바인드 번들 리소스를 참조 하세요.

작업 또는 파이프라인에 대한 구성을 생성하려면 다음과 같이 명령을 실행 bundle generate 합니다.

databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]

참고 항목

현재는 Notebook 작업이 있는 작업만 이 명령에서 지원됩니다.

예를 들어 다음 명령은 아래 YAML을 포함하는 hello_job.yml 번들 프로젝트 폴더에 새 resources 파일을 생성하고 simple_notebook.py 프로젝트 폴더에 src를 다운로드합니다.

databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
  jobs:
    6565621249:
      name: Hello Job
      format: MULTI_TASK
      tasks:
        - task_key: run_notebook
          existing_cluster_id: 0704-xxxxxx-yyyyyyy
          notebook_task:
            notebook_path: ./src/simple_notebook.py
            source: WORKSPACE
          run_if: ALL_SUCCESS
      max_concurrent_runs: 1

대시보드 구성 생성

작업 영역에서 기존 대시보드에 대한 구성을 생성하려면 대시보드의 ID 또는 작업 영역 경로를 지정하여 실행 bundle generate합니다.

databricks bundle generate dashboard --existing-id [dashboard-id]
databricks bundle generate dashboard --existing-path [dashboard-workspace-path]

작업 영역 UI에서 대시보드의 작업 영역 경로를 복사할 수 있습니다.

예를 들어 다음 명령은 아래 YAML을 포함하는 번들 프로젝트 폴더에 새 baby_gender_by_county.dashboard.yml 파일을 생성하고 파일을 프로젝트 폴더에 resources 다운로드합니다baby_gender_by_county.lvdash.json.src

databricks bundle generate dashboard --existing-path "/Workspace/Users/someone@example.com/baby_gender_by_county.lvdash.json"
# This is the contents of the resulting baby_gender_by_county.dashboard.yml file.
resources:
  dashboards:
    baby_gender_by_county:
      display_name: "Baby gender by county"
      warehouse_id: aae11o8e6fe9zz79
      file_path: ../src/baby_gender_by_county.lvdash.json

대시보드를 .lvdash.json 이미 배포한 후 파일을 업데이트하려면 실행할 --resource 때 이 옵션을 사용하여 bundle generate dashboard 기존 대시보드 리소스에 대한 해당 파일을 생성합니다. 대시보드에 대한 업데이트를 지속적으로 폴링하고 검색하려면 해당 옵션과 --force 옵션을 사용합니다--watch.

번들 리소스 바인딩

bundle deployment bind 명령을 사용하면 번들 정의 작업 및 파이프라인을 Azure Databricks 작업 영역의 기존 작업 및 파이프라인에 연결하여 Databricks 자산 번들에 의해 관리되도록 할 수 있습니다. 리소스를 바인딩하는 경우 작업 영역의 기존 Azure Databricks 리소스는 다음의 bundle deploy 다음에 바인딩되는 번들에 정의된 구성에 따라 업데이트됩니다.

바인딩을 실행하기 전에 번들 작업 영역을 확인하는 것이 좋습니다.

databricks bundle deployment bind [resource-key] [resource-id]

예를 들어 다음 명령은 hello_job 리소스를 작업 영역의 원격 리소스에 바인딩합니다. 이 명령은 diff를 출력하고 리소스 바인딩을 거부할 수 있지만 확인되면 번들이 다음에 배포될 때 번들의 작업 정의에 대한 업데이트가 해당 원격 작업에 적용됩니다.

databricks bundle deployment bind hello_job 6565621249

번들에서 작업 또는 파이프라인과 작업 영역의 원격 파이프라인 간의 링크를 제거하려는 경우 bundle deployment unbind를 사용합니다.

databricks bundle deployment unbind [resource-key]

번들 요약 출력

bundle summary 명령은 Databricks 작업 영역의 리소스로 쉽게 이동할 수 있도록 리소스에 대한 딥 링크를 포함하여 번들의 ID 및 리소스에 대한 요약을 출력합니다.

databricks bundle summary

다음 예제 출력은 작업 및 파이프라인을 정의하는 번 my_pipeline_bundle 들의 요약입니다.

Name: my_pipeline_bundle
Target: dev
Workspace:
  Host: https://myworkspace.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/my_pipeline/dev
Resources:
  Jobs:
    my_project_job:
      Name: [dev someone] my_project_job
      URL:  https://myworkspace.cloud.databricks.com/jobs/206000809187888?o=6051000018419999
  Pipelines:
    my_project_pipeline:
      Name: [dev someone] my_project_pipeline
      URL:  https://myworkspace.cloud.databricks.com/pipelines/7f559fd5-zztz-47fa-aa5c-c6bf034b4f58?o=6051000018419999

Databricks 작업 영역의 리소스로 이동하는 데 사용할 bundle open 수도 있습니다. 번들 리소스 열기를 참조하세요.

번들 배포

원격 작업 영역에 번들을 배포하려면 번들 프로젝트 루트에서 bundle deploy 명령을 실행합니다. 명령 옵션을 지정하지 않으면 번들 구성 파일 내에 선언된 기본 대상이 사용됩니다.

databricks bundle deploy

특정 대상에 번들을 배포하려면 번들 구성 파일 내에 선언된 대로 대상 이름과 함께 -t(또는--target) 옵션을 설정합니다. 예를 들어 dev 이름으로 선언된 대상의 경우 다음과 같습니다.

databricks bundle deploy -t dev

번들은 개발, 스테이징 및 프로덕션 작업 영역과 같은 여러 작업 영역에 배포할 수 있습니다. 기본적으로 root_path 속성은 번들의 고유 ID를 결정하며, 기본값은 ~/.bundle/${bundle.name}/${bundle.target}입니다. 따라서 기본적으로 번들의 ID는 배포자의 ID, 번들의 이름 및 번들의 대상 이름으로 구성됩니다. 이러한 번들이 서로 다른 번들에서 동일한 경우 이러한 번들의 배포는 서로 간섭합니다.

또한 번들 배포는 ID로 대상 작업 영역에 만든 리소스를 작업 영역 파일 시스템에 저장된 상태로 추적합니다. 리소스 이름은 번들 배포와 리소스 인스턴스 간의 상관 관계를 지정하는 데 사용되지 않으므로 다음과 같이 처리됩니다.

  • 번들 구성의 리소스가 대상 작업 영역에 없는 경우 리소스가 생성됩니다.
  • 번들 구성의 리소스가 대상 작업 영역에 있는 경우 리소스는 작업 영역에서 업데이트됩니다.
  • 리소스가 번들 구성에서 제거된 경우 이전에 배포된 경우 리소스는 대상 작업 영역에서 제거됩니다.
  • 번들 이름, 번들 대상 또는 작업 영역을 변경하는 경우에만 번들과 리소스의 연결을 잊어 버릴 수 있습니다. bundle validate를 실행하여 이러한 값이 포함된 요약을 출력할 수 있습니다.

작업 또는 파이프라인 실행

특정 작업 또는 파이프라인을 실행하려면 bundle run 명령을 사용합니다. 번들 구성 파일 내에 선언된 작업 또는 파이프라인의 리소스 키를 지정해야 합니다. 기본적으로 번들 구성 파일 내에 선언된 환경이 사용됩니다. 예를 들어 기본 환경에서 hello_job 작업을 실행하려면 다음 명령을 실행합니다.

databricks bundle run hello_job

hello_job 이름으로 선언된 대상의 컨텍스트 내에서 dev 키를 사용하여 작업을 실행하려면 다음을 수행합니다.

databricks bundle run -t dev hello_job

파이프라인 유효성 검사 실행을 수행하려면 다음 예제와 같이 --validate-only 옵션을 사용합니다.

databricks bundle run --validate-only my_pipeline

작업 매개 변수를 전달하려면 --params 옵션과 쉼표로 구분된 키-값 쌍을 사용하며, 여기서 키는 매개 변수 이름입니다. 예를 들어 다음 명령은 message 작업에 대해 HelloWorld 이름을 가진 매개 변수를 hello_job로 설정합니다.

databricks bundle run --params message=HelloWorld hello_job

참고 항목

작업 태스크 옵션을 사용하여 작업 태스크에 매개 변수를 전달할 수 있지만, 작업 매개 변수 전달하는 방법으로 --params 옵션을 권장합니다. 작업 매개 변수가 정의되지 않은 작업에 대해 작업 매개 변수를 지정하거나 작업 매개 변수가 정의된 작업에 대해 태스크 매개 변수를 지정하면 오류가 발생합니다.

기존 작업 실행 또는 파이프라인 업데이트를 취소하고 다시 시작하려면 다음 --restart 옵션을 사용합니다.

databricks bundle run --restart hello_job

번들 리소스 열기

작업 영역에서 번들 리소스로 이동하려면 번들 프로젝트 루트에서 명령을 실행하고 bundle open 열 리소스를 지정합니다. 리소스 키를 지정하지 않으면 이 명령은 선택할 번들의 리소스 목록을 출력합니다.

databricks bundle open [resource-key]

예를 들어 다음 명령은 브라우저를 시작하고 번들에 대해 구성된 Databricks 작업 영역의 번들에서 baby_gender_by_county 대시보드로 이동합니다.

databricks bundle open baby_gender_by_county

번들 제거

Warning

번들을 삭제하면 번들의 이전에 배포된 작업, 파이프라인 및 아티팩트가 영구적으로 삭제됩니다. 이 작업은 취소할 수 없습니다.

이전에 배포된 작업, 파이프라인 및 아티팩트 삭제하려면 bundle destroy 명령을 실행합니다. 다음 명령은 번들 구성 파일에 정의된 이전에 배포된 모든 작업, 파이프라인 및 아티팩트를 삭제합니다.

databricks bundle destroy

참고 항목

번들의 ID는 번들 이름, 번들 대상 및 작업 영역으로 구성됩니다. 이러한 항목을 변경한 다음 배포하기 전에 번들을 삭제하려고 하면 오류가 발생합니다.

기본적으로 이전에 배포된 작업, 파이프라인 및 아티팩트 영구 삭제를 확인하라는 메시지가 표시됩니다. 이러한 프롬프트를 건너뛰고 자동 영구 삭제를 수행하려면 --auto-approve 명령에 bundle destroy 옵션을 추가합니다.