이 페이지에서는 Databricks 자산 번들을 사용하여 Python 휠 파일을 빌드, 배포 및 실행하는 방법을 설명합니다. Databricks 자산 번들이란?.
JAR을 빌드하고 Unity 카탈로그에 업로드하는 예제 구성은 JAR 파일을 Unity 카탈로그 업로드하는번들을 참조하세요.
Requirements
- Databricks CLI 버전 0.218.0 이상이 설치되고 인증이 구성됩니다. 설치된 Databricks CLI 버전을 확인하려면
databricks -v명령을 실행합니다. Databricks CLI를 설치하려면 Databricks CLI 설치 또는 업데이트을 참조하세요. 인증을 구성하려면 작업 영역에 대한 액세스 구성을 참조하세요. - uv 는 테스트를 실행하고 IDE에서 이 프로젝트에 대한 종속성을 설치하는 데 필요합니다.
- 원격 작업 영역에는 작업 영역 파일이 활성화되어 있어야 합니다. 작업 영역 파일이란?을 참조하세요.
- 기존 카탈로그입니다. 카탈로그를 만들려면 카탈로그 만들기를 참조하세요.
템플릿을 사용하여 번들 만들기
Python용 Databricks 자산 번들 기본 번들 템플릿을 사용하여 번들을 만듭니다. 이 번들은 Python 휠 파일로 빌드할 파일과 이 Python 휠 파일을 빌드하기 위한 Azure Databricks 작업의 정의로 구성됩니다. 그런 다음 Azure Databricks 작업 영역 내의 Python 휠 작업에서 배포된 파일의 유효성을 검사, 배포 및 Python 휠 파일로 빌드합니다.
번들을 처음부터 만들려면 수동으로 번들 만들기를 참조하세요.
1단계: 번들 만들기
번들에는 배포하려는 자산과 실행하려는 워크플로에 대한 설정이 포함됩니다.
터미널 또는 명령 프롬프트를 사용하여 템플릿의 생성된 번들을 포함하는 로컬 개발 머신의 디렉터리로 전환합니다.
Databricks CLI 버전을 사용하여 명령을 실행합니다
bundle init.databricks bundle initTemplate to use의 경우,default-python를 눌러 기본값Enter를 그대로 둡니다.Unique name for this project의 경우 기본값my_project를 그대로 두거나 다른 값을 입력한 다음Enter를 누릅니다. 이것으로 번들의 루트 디렉터리 이름이 결정됩니다. 이 루트 디렉터리가 현재 작업 디렉터리에 만들어집니다.Include a job that runs a notebook에서no을 선택하고Enter를 누릅니다. Databricks CLI에 샘플 노트북을 번들에 추가하지 않도록 지시합니다.Include an ETL pipeline에서no을 선택하고Enter를 누릅니다. 그러면 Databricks CLI가 번들에 샘플 파이프라인을 정의하지 않도록 지시합니다.Include a stub (sample) Python package의 경우,yes를 눌러 기본값Enter를 그대로 둡니다. 그러면 Databricks CLI에서 샘플 Python 휠 패키지 파일 및 관련 빌드 지침을 번들에 추가하도록 지시합니다.Use serverless에서yes을 선택하고Enter를 누릅니다. 그러면 Databricks CLI가 서버리스 컴퓨팅에서 실행되도록 번들을 구성하도록 지시합니다.Unity 카탈로그에 이미 존재하는 카탈로그의 이름을
Default catalog for any tables created by this project [hive_metastore]에 입력하세요.Use a personal schema for each user working on this project.에 대해yes을 선택합니다.
2단계: 번들 탐색
템플릿이 생성한 파일을 보려면 새로 만든 번들의 루트 디렉터리로 전환하고 원하는 IDE를 사용하여 이 디렉터리를 엽니다. 특히 관심 있는 파일은 다음과 같습니다.
-
databricks.yml: 이 파일은 번들의 이름을 지정하고, 번들의 파일에 대한 참조를 포함하고, 빌드 설정을 지정whl하고, 카탈로그 및 스키마 변수를 정의하고, 대상 작업 영역에 대한 설정을 지정합니다. -
resources/sample_job.job.yml: 이 파일은 Python 휠 작업의 설정을 지정합니다. 작업 설정에 대한 자세한 내용은 작업을 참조하세요. -
src/: 이 폴더에는 Python 휠 작업이 Python 휠 파일을 빌드하는 데 사용하는 파일이 포함됩니다. -
tests/: 이 폴더에는 샘플 단위 테스트가 포함되어 있습니다. -
README.md: 이 파일에는 이 번들 템플릿을 시작하고 사용하는 방법에 대한 추가 정보가 포함되어 있습니다.
Note
Databricks Runtime 12.2 LTS 이하의 클러스터에 Python 휠 파일을 설치하려면 다음 최상위 매핑을 databricks.yml 파일에 추가해야 합니다.
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
3단계: 번들 구성 유효성 검사
이제 번들 구성이 유효한지 확인합니다.
루트 디렉터리에서 Databricks CLI를 사용하여 명령을 실행합니다
bundle validate.databricks bundle validate번들 구성 요약이 반환되면 유효성 검사는 성공입니다. 오류가 반환되면 오류를 수정한 다음 이 단계를 반복합니다.
4단계: 원격 작업 영역에 번들 배포
다음으로, 원격 Azure Databricks 작업 영역에 번들을 배포합니다. Python 휠 파일을 빌드합니다. 작업 영역 내에서 Azure Databricks 작업이 만들어지는지 확인합니다.
번들 루트에서 Databricks CLI를 사용하여 명령을 실행합니다
bundle deploy.databricks bundle deploy --target dev로컬로 빌드된 Python 휠 파일이 배포되었는지 확인합니다.
- Azure Databricks 작업 영역의 사이드바에서 작업 영역을 클릭합니다.
- 다음 폴더로 이동하십시오: Workspace > Users >
<your-username>> .bundle ><project-name>> dev > artifacts > .internal ><whl-file-name>.whl폴더로 클릭하세요.
Python 휠 파일은 이 폴더에 있어야 합니다.
작업이 만들어졌는지 확인합니다.
- Azure Databricks 작업 영역의 사이드바에서 작업 및 파이프라인을 클릭합니다.
- 필요에 따라 작업 필터와 내 소유 필터를 선택합니다.
-
[dev
<your-username>]sample_job를 클릭합니다. - 작업 탭을 클릭합니다. python_wheel_task이 있어야 합니다.
이 단계 후에 번들을 변경한 경우 3-4단계를 반복하여 번들 구성이 여전히 유효한지 확인한 다음 프로젝트를 다시 배포합니다.
5단계: 배포된 프로젝트 실행
이제 작업 영역에서 Azure Databricks 작업의 실행을 트리거합니다.
루트 디렉터리에서 Databricks CLI를 사용하여 명령을 실행합니다
bundle run.databricks bundle run --target dev sample_job터미널에 표시되는
Run URL의 값을 복사하고 이 값을 웹 브라우저에 붙여넣어 Azure Databricks 작업 영역을 엽니다.Azure Databricks 작업 영역에서 작업이 성공적으로 완료되고 녹색 제목 표시줄이 표시되면 작업 작업을 클릭하여 결과를 확인합니다.
Poetry 또는 setuptools를 사용하여 whl 파일을 생성하세요.
기본 Python 템플릿과 함께 databricks bundle init를 사용하면, uv과 pyproject.toml을 사용하여 Python 휠을 빌드하는 번들을 구성하는 방법을 보여주는 번들이 생성됩니다. 그러나 휠을 빌드하려면 대신 Poetry 또는 setuptools를 사용할 수도 있습니다.
Poetry 또는 setuptools 설치
Poetry를 설치하거나
setuptools을(를) 실행하세요.Poetry
-
Poetry 버전 1.6 이상이 아직 설치되지 않은 경우 설치하십시오. 설치된 버전의 시를 확인하려면 명령
poetry -V또는poetry --version.를 실행합니다. - Python 버전 3.10 이상이 설치되어 있는지 확인합니다. Python 버전을 확인하려면 명령을
python -V실행하거나python --version.
Setuptools
wheel및setuptools패키지가 아직 설치되지 않은 경우, 다음 명령을 실행하여 설치합니다.pip3 install --upgrade wheel setuptools-
Poetry 버전 1.6 이상이 아직 설치되지 않은 경우 설치하십시오. 설치된 버전의 시를 확인하려면 명령
이 번들을 Git 공급자와 함께 저장하려는 경우 프로젝트의 루트에 파일을 추가하고
.gitignore이 파일에 다음 항목을 추가합니다.Poetry
.databricks distSetuptools
.databricks build dist src/my_package/my_package.egg-info
빌드 파일 추가
번들의 루트에서 Poetry를 사용하거나
setuptools를 사용하여 Python 휠 파일을 빌드할 경우 다음 폴더와 파일을 만드십시오.Poetry
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.tomlSetuptools
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.pypyproject.toml또는setup.py파일에 다음 코드를 추가합니다.Pyproject.toml
[tool.poetry] name = "my_package" version = "0.0.1" description = "<my-package-description>" authors = ["my-author-name <my-author-name>@<my-organization>"] [tool.poetry.dependencies] python = "^3.10" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] main = "my_package.main:main"- 조직의 기본 연락처 이름으로 대체
my-author-name합니다. - 조직의 기본 전자 메일 연락처 주소로 대체
my-author-name>@<my-organization합니다. - Python 휠 파일의 표시 설명으로
<my-package-description>를 대체합니다.
Setup.py
from setuptools import setup, find_packages import src setup( name = "my_package", version = "0.0.1", author = "<my-author-name>", url = "https://<my-url>", author_email = "<my-author-name>@<my-organization>", description = "<my-package-description>", packages=find_packages(where='./src'), package_dir={'': 'src'}, entry_points={ "packages": [ "main=my_package.main:main" ] }, install_requires=[ "setuptools" ] )- 을 organization URL로 대체
https://<my-url>합니다. - 조직의 기본 연락처 이름으로 대체
<my-author-name>합니다. - 조직의 기본 전자 메일 연락처 주소로 대체
<my-author-name>@<my-organization>합니다. - Python 휠 파일의 표시 설명으로
<my-package-description>를 대체합니다.
- 조직의 기본 연락처 이름으로 대체
아티팩트 번들 구성 추가
artifacts매핑 구성을databricks.yml에 추가하여whl아티팩트를 빌드하십시오.Poetry
이 구성은
poetry build명령을 실행하고 파일 경로가pyproject.toml파일과 동일한 디렉터리에databricks.yml있음을 나타냅니다.Note
Python 휠 파일을 이미 빌드했고 이제 배포만 하려는 경우,
artifacts매핑을 생략하여 다음 번들 구성 파일을 수정하십시오. 그러면 Databricks CLI는 Python 휠 파일이 이미 빌드되었다고 가정하고 배열의libraries항목에whl지정된 파일을 자동으로 배포합니다.bundle: name: my-wheel-bundle artifacts: default: type: whl build: poetry build path: . resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 data_security_mode: USER_ISOLATION num_workers: 1 python_wheel_task: entry_point: main package_name: my_package libraries: - whl: ./dist/*.whl targets: dev: workspace: host: <workspace-url>Setuptools
이 구성은
setuptools명령을 실행하고 파일 경로가setup.py파일과 동일한 디렉터리에databricks.yml있음을 나타냅니다.bundle: name: my-wheel-bundle artifacts: default: type: whl build: python3 setup.py bdist wheel path: . resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 data_security_mode: USER_ISOLATION num_workers: 1 python_wheel_task: entry_point: main package_name: my_package libraries: - whl: ./dist/*.whl targets: dev: workspace: host: <workspace-url>