Databricks 자산 번들 개발
이 문서에서는 Databricks 자산 번들의 개발 및 수명 주기에 대해 설명합니다. Databricks 자산 번들에 대한 일반적인 내용은 Databricks 자산 번들이란?을 참조하세요.
번들의 수명 주기
번들을 효과적으로 사용하는 방법을 이해하려면 번들의 기본 수명 주기를 이해해야 합니다.
- 번들 기본 구조는 프로젝트를 기반으로 만들어집니다.
- 번들 프로젝트는 로컬로 개발됩니다. 번들에는 배포 대상과 같은 인프라 및 작업 영역 설정, 작업 및 파이프라인과 같은 Databricks 리소스의 설정, 원본 파일 및 기타 아티팩트를 정의하는 구성 파일이 포함됩니다.
- 번들 프로젝트의 유효성이 검사됩니다. 유효성 검사는 번들 구성에서 해당 개체 스키마에 대한 설정 및 리소스 정의를 확인하여 번들이 Databricks에 배포 가능한지 확인합니다.
- 번들은 대상 작업 영역에 배포 됩니다. 가장 일반적으로 번들은 테스트를 위해 사용자의 개인 개발 작업 영역에 먼저 배포됩니다. 번들 테스트가 완료되면 스테이징, 그 다음 프로덕션 대상에 번들을 배포할 수 있습니다.
- 배포된 번들에 정의된 워크플로 리소스를 실행할 수 있습니다. 예를 들어 작업을 실행할 수 있습니다.
- 번들을 더 이상 사용하지 않으면 영구적으로 제거할 수 있습니다.
다음 섹션에 설명된 대로 Databricks CLI 번들 명령을 사용하여 번들을 만들고, 유효성을 검사하고, 배포하고, 실행하고, 제거합니다.
1단계: 번들 만들기
번들 만들기를 시작하는 방법에는 다음의 세 가지가 있습니다.
- 기본 번들 템플릿을 사용합니다.
- 사용자 지정 번들 템플릿을 사용합니다.
- 번들을 수동으로 만듭니다.
기본 번들 템플릿 사용
Azure Databricks 기본 번들 템플릿을 사용하여 추가로 사용자 지정할 수 있는 스타터 번들을 만들려면 Databricks CLI 버전 0.218.0 이상을 사용하여 사용 가능한 템플릿 목록에서 선택할 수 있는 bundle init
명령을 실행합니다. 프로젝트 템플릿에서 번들 만들기를 참조하세요.
databricks bundle init
databricks/cli 및 databricks/mlops-stacks Github 공용 리포지토리에서 기본 번들 템플릿의 원본을 볼 수 있습니다.
2단계: 번들 구성 파일 채우기로 건너뜁니다.
사용자 지정 번들 템플릿 사용
Azure Databricks 기본 번들 템플릿 이외의 번들 템플릿을 사용하려면 템플릿의 로컬 경로 또는 원격 번들 템플릿 위치의 URL을 알아야 합니다. Databricks CLI 버전 0.218.0 이상을 사용하여 다음과 같이 bundle init
명령을 실행합니다.
databricks bundle init <project-template-local-path-or-url>
이 명령에 대한 자세한 내용은 Databricks 자산 번들 프로젝트 템플릿을 참조하세요. 특정 번들 템플릿에 대한 자세한 내용은 번들 템플릿 공급자의 설명서를 참조하세요.
2단계: 번들 구성 파일 채우기로 건너뜁니다.
수동으로 번들 만들기
번들 템플릿을 사용하는 대신 번들을 수동으로 만들려면 로컬 컴퓨터에 프로젝트 디렉터리를 만들거나 타사 Git 공급자가 있는 빈 리포지토리를 만듭니다.
디렉터리 또는 리포지토리에서 하나 이상의 번들 구성 파일을 입력으로 만듭니다. 이러한 파일은 YAML 형식으로 표현됩니다. 이름이 databricks.yml
인 번들 구성 파일이 하나 이상(및 하나만) 있어야 합니다. 추가 번들 구성 파일은 databricks.yml
파일의 include
매핑에서 참조해야 합니다.
Databricks 자산 번들 구성 구문을 준수하는 YAML 파일을 보다 쉽고 빠르게 만들려면 다음과 같이 YAML 파일 및 JSON 스키마 파일을 지원하는 Visual Studio Code, PyCharm Professional 또는 IntelliJ IDEA Ultimate와 같은 도구를 사용할 수 있습니다.
Visual Studio Code
예를 들어 Visual Studio Code 마켓플레이스에서 YAML 확장을 설치하여 VISUAL Studio Code에 YAML 언어 서버 지원을 추가합니다.
Databricks CLI 버전 0.218.0 이상을 사용하여 Databricks 자산 번들 구성 JSON 스키마 파일을 생성하여
bundle schema
명령을 실행하고 출력을 JSON 파일로 리디렉션합니다. 예를 들어 다음과 같이 현재 디렉터리 내에bundle_config_schema.json
이라는 이름의 파일을 생성합니다.databricks bundle schema > bundle_config_schema.json
Visual Studio Code를 사용하여 현재 디렉터리 내에서 번들 구성 파일을 만들거나 엽니다. 이 파일 이름은
databricks.yml
이어야 합니다.번들 구성 파일의 시작 부분에 다음 설명을 추가합니다.
# yaml-language-server: $schema=bundle_config_schema.json
참고 항목
앞의 설명에서 Databricks 자산 번들 구성 JSON 스키마 파일이 다른 경로에 있는 경우
bundle_config_schema.json
을 스키마 파일의 전체 경로로 바꿉니다.이전에 추가한 YAML 언어 서버 기능을 사용합니다. 자세한 내용은 YAML 언어 서버의 설명서를 참조하세요.
PyCharm Professional
Databricks CLI 버전 0.218.0 이상을 사용함으로써 Databricks 자산 번들 구성 JSON 스키마 파일을 생성하여
bundle schema
명령을 실행하고 출력을 JSON 파일로 리디렉션합니다. 예를 들어 다음과 같이 현재 디렉터리 내에bundle_config_schema.json
이라는 이름의 파일을 생성합니다.databricks bundle schema > bundle_config_schema.json
번들 구성 JSON 스키마 파일을 인식하도록 PyCharm을 구성한 다음 사용자 지정 JSON 스키마 구성의 지침에 따라 JSON 스키마 매핑을 완료합니다.
PyCharm을 사용하여 번들 구성 파일을 만들거나 엽니다. 이 파일 이름은
databricks.yml
이어야 합니다. 입력할 때 PyCharm은 JSON 스키마 구문 및 서식을 확인하고 코드 완료 힌트를 제공합니다.
IntelliJ IDEA Ultimate
Databricks CLI 버전 0.218.0 이상을 사용함으로써 Databricks 자산 번들 구성 JSON 스키마 파일을 생성하여
bundle schema
명령을 실행하고 출력을 JSON 파일로 리디렉션합니다. 예를 들어 다음과 같이 현재 디렉터리 내에bundle_config_schema.json
이라는 이름의 파일을 생성합니다.databricks bundle schema > bundle_config_schema.json
번들 구성 JSON 스키마 파일을 인식하도록 IntelliJ IDEA를 구성한 다음 사용자 지정 JSON 스키마 구성의 지침에 따라 JSON 스키마 매핑을 완료합니다.
IntelliJ IDEA를 사용하여 번들 구성 파일을 만들거나 엽니다. 이 파일 이름은
databricks.yml
이어야 합니다. 입력할 때 IntelliJ IDEA는 JSON 스키마 구문 및 서식을 확인하고 코드 완료 힌트를 제공합니다.
2단계: 번들 구성 파일 채우기
번들 구성 파일은 작업 영역 세부 정보, 아티팩트 이름, 파일 위치, 작업 세부 정보 및 파이프라인 세부 정보와 같은 설정을 지정하여 Azure Databricks 워크플로를 정의합니다. 일반적으로 번들 구성에는 개발, 스테이징 및 프로덕션 배포 대상도 포함됩니다. 번들 구성 파일에 대한 세부적인 내용은 Databricks 자산 번들 구성을 참조하세요.
bundle generate
명령을 사용하여 작업 영역의 기존 리소스에 대한 번들 구성을 자동으로 생성한 다음, bundle deployment bind
를 사용하여 번들 구성을 작업 영역의 리소스에 연결하고 동기화 상태로 유지할 수 있습니다. 번들 구성 파일 생성 및 번들 리소스 바인딩을 참조하세요.
3단계: 번들 구성 파일 유효성 검사
아티팩트를 배포하거나 작업 또는 파이프라인을 실행하기 전에 번들 구성 파일의 정의가 유효한지 확인해야 합니다. 이러려면 프로젝트 루트 디렉터리에서 bundle validate
명령을 실행합니다. 번들 유효성 검사를 참조하세요.
databricks bundle validate
유효성 검사에 성공하면 번들 ID 및 확인 메시지의 요약이 반환됩니다. 스키마를 출력하려면 databricks bundle schema
명령을 사용합니다. 번들 구성 스키마 표시를 참조하세요.
4단계: 번들 배포
번들을 배포하기 전에 원격 작업 영역에 작업 영역 파일이 사용하도록 설정되어 있는지 확인합니다. 작업 영역 파일이란?을 참조하세요.
번들을 원격 작업 영역에 배포하려면 번들 배포에 설명된 대로 번들 루트에서 bundle deploy
명령을 실행합니다. Databricks CLI는 번들 구성 파일 내에 선언된 대상 작업 영역에 배포합니다. 대상을 참조하세요.
databricks bundle deploy
번들의 고유 ID는 배포자의 이름, 대상 및 ID로 정의됩니다. 이러한 특성이 여러 번들에서 동일한 경우 이러한 번들의 배포는 서로 간섭합니다. 추가 세부 정보는 번들 배포를 참조하세요.
팁
BUNDLE_ROOT
환경 변수를 설정하여 번들 루트 외부에서 databricks bundle
명령을 실행할 수 있습니다. 이 환경 변수가 설정되지 않은 경우 databricks bundle
명령은 현재 작업 디렉터리 내에서 검색하여 번들 루트를 찾으려고 시도합니다.
5단계: 번들 실행
특정 작업 또는 파이프라인을 실행하려면 번들 루트에서 명령을 실행하여 작업 또는 파이프라인 실행에 bundle run
설명 된 대로 번들 구성 파일 내에 선언된 작업 또는 파이프라인 키를 지정합니다. 리소스 키는 리소스 YAML 블록의 최상위 요소입니다. 작업 또는 파이프라인 키를 지정하지 않으면 사용 가능한 리소스 목록에서 실행할 리소스를 선택하라는 메시지가 표시됩니다. -t
옵션을 지정하지 않으면 번들 구성 파일 내에 선언된 기본 대상이 사용됩니다. 예를 들어 기본 대상의 컨텍스트 내에서 hello_job
키를 사용하여 작업을 실행하려면 다음을 수행합니다.
databricks bundle run hello_job
dev
이름으로 선언된 대상의 컨텍스트 내에서 hello_job
키를 사용하여 작업을 실행하려면 다음을 수행합니다.
databricks bundle run -t dev hello_job
6단계: 번들 삭제
Warning
번들을 삭제하면 번들의 이전에 배포된 작업, 파이프라인 및 아티팩트가 영구적으로 삭제됩니다. 이 작업은 취소할 수 없습니다.
번들을 완료하고 이전에 배포된 작업, 파이프라인 및 아티팩트 삭제하려는 경우 번들 루트에서 bundle destroy
명령을 실행합니다. 이 명령은 번들 구성 파일에 정의된 이전에 배포된 모든 작업, 파이프라인 및 아티팩트를 삭제합니다. 번들 제거를 참조하세요.
databricks bundle destroy
기본적으로 이전에 배포된 작업, 파이프라인 및 아티팩트 영구 삭제를 확인하라는 메시지가 표시됩니다. 이러한 프롬프트를 건너뛰고 자동 영구 삭제를 수행하려면 bundle destroy
명령에 --auto-approve
옵션을 추가합니다.