bundle
명령 그룹
참고 항목
이 정보는 Databricks CLI 버전 0.218.0 이상에 적용됩니다. Databricks CLI 버전을 찾으려면 databricks -v
를 실행합니다.
Databricks CLI 내의 bundle
명령 그룹을 사용하면 Azure Databricks 작업, Delta Live Tables 파이프라인 및 MLOps 스택과 같은 Azure Databricks 워크플로의 유효성을 프로그래밍 방식으로 유효성 검사, 배포 및 실행할 수 있습니다. Databricks 자산 번들이란?을 참조하세요.
Important
Databricks CLI를 설치하려면 Databricks CLI 설치 또는 업데이트를 참조하세요. Databricks CLI에 대한 인증을 구성하려면 Databricks CLI에 대한 인증을 참조하세요.
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>"
다음을 참조하세요.
- Databricks 자산 번들 프로젝트 템플릿
- Databricks 자산 번들을 사용하여 Azure Databricks에서 작업 개발
- Databricks 자산 번들을 사용하여 Delta Live Tables 파이프라인 개발
- MLOps 스택에 대한 Databricks 자산 번들
번들 구성 스키마 표시
Databricks 자산 번들 구성 스키마를 표시하려면 다음과 같이 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
명령은 해당 개체의 스키마에서 찾을 수 없는 번들 구성 파일에 리소스 속성이 정의된 경우 경고를 출력합니다.
번들 트리를 작업 영역에 동기화
bundle sync
명령을 사용하여 로컬 파일 시스템 디렉터리 내의 번들 파일 변경 내용을 원격 Azure Databricks 작업 영역 내의 디렉터리로 단방향 동기화를 수행합니다.
참고 항목
bundle sync
명령은 원격 Azure Databricks 작업 영역 내의 디렉터리에서 로컬 파일 시스템 내의 디렉터리로 파일 변경 내용을 동기화할 수 없습니다.
databricks bundle sync
명령은 databricks sync
명령과 동일한 방식으로 작동하며 생산성 편의를 위해 제공됩니다. 명령 사용 정보는 동기화 명령 그룹을 참조하세요.
번들 구성 파일 생성
bundle generate
명령을 사용하여 Databricks 작업 영역에 이미 있는 작업 또는 파이프라인에 대한 리소스 구성을 생성할 수 있습니다. 이 명령은 번들 프로젝트의 resources
폴더에서 작업 또는 파이프라인에 대한 *.yml
파일을 생성하고 작업 또는 파이프라인 구성에서 참조되는 모든 Notebook도 다운로드합니다. 현재는 Notebook 작업이 있는 작업만 이 명령에서 지원됩니다.
Important
bundle generate
명령은 리소스 구성을 자동으로 생성하는 편의를 위해 제공됩니다. 그러나 이 구성이 번들에 포함되어 배포되면 새 리소스를 만들고 리소스에 bundle deployment bind
가 처음 사용되지 않는 한 기존 리소스를 업데이트하지 않습니다.
다음과 같이 bundle generate
명령을 실행합니다.
databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]
예를 들어 다음 명령은 아래 YAML을 포함하는 resources
번들 프로젝트 폴더에 새 hello_job.yml
파일을 생성하고 src
프로젝트 폴더에 simple_notebook.py
를 다운로드합니다.
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
번들 리소스 바인딩
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 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
dev
이름으로 선언된 대상의 컨텍스트 내에서 hello_job
키를 사용하여 작업을 실행하려면 다음을 수행합니다.
databricks bundle run -t dev hello_job
파이프라인 유효성 검사 실행을 수행하려면 다음 예제와 같이 --validate-only
옵션을 사용합니다.
databricks bundle run --validate-only my_pipeline
작업 매개 변수를 전달하려면 --params
옵션과 쉼표로 구분된 키-값 쌍을 사용하며, 여기서 키는 매개 변수 이름입니다. 예를 들어 다음 명령은 hello_job
작업에 대해 message
이름을 가진 매개 변수를 HelloWorld
로 설정합니다.
databricks bundle run --params message=HelloWorld hello_job
참고 항목
작업 태스크 옵션을 사용하여 작업 태스크에 매개 변수를 전달할 수 있지만, 작업 매개 변수 전달하는 방법으로 --params
옵션을 권장합니다. 작업 매개 변수가 정의되지 않은 작업에 대해 작업 매개 변수를 지정하거나 작업 매개 변수가 정의된 작업에 대해 태스크 매개 변수를 지정하면 오류가 발생합니다.
기존 작업 실행 또는 파이프라인 업데이트를 취소하고 다시 시작하려면 다음 --restart
옵션을 사용합니다.
databricks bundle run --restart hello_job
번들 제거
이전에 배포된 작업, 파이프라인 및 아티팩트 삭제하려면 bundle destroy
명령을 실행합니다. 다음 명령은 번들 구성 파일에 정의된 이전에 배포된 모든 작업, 파이프라인 및 아티팩트를 삭제합니다.
databricks bundle destroy
참고 항목
번들의 ID는 번들 이름, 번들 대상 및 작업 영역으로 구성됩니다. 이러한 항목을 변경한 다음 배포하기 전에 번들을 삭제하려고 하면 오류가 발생합니다.
기본적으로 이전에 배포된 작업, 파이프라인 및 아티팩트 영구 삭제를 확인하라는 메시지가 표시됩니다. 이러한 프롬프트를 건너뛰고 자동 영구 삭제를 수행하려면 bundle destroy
명령에 --auto-approve
옵션을 추가합니다.