다음을 통해 공유


Databricks 자산 번들을 사용하여 Python 휠 파일 개발

이 문서에서는 Databricks 자산 번들 프로젝트의 일부로 Python 휠 파일을 빌드, 배포 및 실행하는 방법을 설명합니다. Databricks 자산 번들이란?

요구 사항

  • Databricks CLI 버전 0.218.0 이상. 설치된 Databricks CLI 버전을 확인하려면 명령을 databricks -v실행합니다. Databricks CLI를 설치하려면 Databricks CLI 설치 또는 업데이트를 참조하세요.
  • 원격 작업 영역에는 작업 영역 파일이 활성화되어 있어야 합니다. 작업 영역 파일이란?을 참조하세요.

결정: 수동으로 또는 템플릿을 사용하여 번들 만들기

템플릿을 사용하여 시작 번들을 만들 것인지 아니면 번들을 수동으로 만들 것인지 결정합니다. 템플릿을 사용하여 번들을 만드는 것이 더 빠르고 쉽지만 번들은 필요하지 않은 콘텐츠를 생성할 수 있으며, 실제 애플리케이션에 대해 번들의 기본 설정을 추가로 사용자 지정해야 합니다. 번들을 수동으로 만들면 번들의 설정을 완전히 제어할 수 있지만, 처음부터 모든 작업을 수행하므로 번들의 작동 방식을 잘 알고 있어야 합니다. 다음 단계 집합 중 하나를 선택합니다.

템플릿을 사용하여 번들 만들기

이 단계에서는 Python용 Azure Databricks 기본 번들 템플릿을 사용하여 번들을 만듭니다. 이 단계에서는 Python 휠 파일로 빌드할 파일과 이 Python 휠 파일을 빌드하기 위한 Azure Databricks 작업의 정의로 구성된 번들을 만드는 방법을 안내합니다. 그런 다음 Azure Databricks 작업 영역 내의 Python 휠 작업에서 배포된 파일의 유효성을 검사, 배포 및 Python 휠 파일로 빌드합니다.

Python용 Azure Databricks 기본 번들 템플릿은 setuptools를 사용하여 Python 휠 파일을 빌드합니다 . 시를 사용하여 Python 휠 파일을 대신 빌드하려면 이 섹션의 뒷부분에 나오는 지침에 따라 시 구현에 대한 구현을 대신 교체 setuptools 합니다.

1단계: 인증 설정

이 단계에서는 개발 컴퓨터의 Databricks CLI와 Azure Databricks 작업 영역 간에 인증을 설정합니다. 이 문서에서는 OAuth U2M(사용자-컴퓨터) 인증 및 인증을 위해 명명된 DEFAULT 해당 Azure Databricks 구성 프로필을 사용하려고 하는 것으로 가정합니다.

참고 항목

U2M 인증은 이러한 단계를 실시간으로 시도하는 데 적합합니다. 완전히 자동화된 워크플로의 경우 Databricks는 OAuth M2M(컴퓨터 간) 인증을 대신 사용하는 것이 좋습니다. 인증에서 M2M 인증 설정 지침을 참조하세요.

  1. Databricks CLI를 사용하여 각 대상 작업 영역에 대해 다음 명령을 실행하여 OAuth 토큰 관리를 로컬로 시작합니다.

    다음 명령에서 작업 영역별 Azure Databricks URL로 바꿉 <workspace-url> 니다. 예를 들면 다음과 같습니다https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI는 Azure Databricks 구성 프로필로 입력한 정보를 저장하라는 메시지를 표시합니다. 제안된 프로필 이름을 적용하려면 누르 Enter 거나 새 프로필 또는 기존 프로필의 이름을 입력합니다. 이름이 같은 기존 프로필은 입력한 정보로 덮어씁니다. 프로필을 사용하여 여러 작업 영역에서 인증 컨텍스트를 빠르게 전환할 수 있습니다.

    기존 프로필 목록을 얻으려면 별도의 터미널 또는 명령 프롬프트에서 Databricks CLI를 사용하여 명령을 databricks auth profiles실행합니다. 특정 프로필의 기존 설정을 보려면 명령을 databricks auth env --profile <profile-name>실행합니다.

  3. 웹 브라우저에서 화면의 지침을 완료하여 Azure Databricks 작업 영역에 로그인합니다.

  4. 프로필의 현재 OAuth 토큰 값과 토큰의 예정된 만료 타임스탬프를 보려면 다음 명령 중 하나를 실행합니다.

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    동일한 --host 값을 가진 여러 프로필이 있는 경우 Databricks CLI가 올바른 일치하는 OAuth 토큰 정보를 찾을 수 있도록 옵션과 -p 옵션을 함께 지정 --host 해야 할 수 있습니다.

2단계: 번들 만들기

번들에는 배포하려는 아티팩트와 실행하려는 워크플로에 대한 설정이 포함됩니다.

  1. 터미널 또는 명령 프롬프트를 사용하여 템플릿의 생성된 번들을 포함하는 로컬 개발 머신의 디렉터리로 전환합니다.

  2. Dataricks CLI 버전을 사용하여 명령을 실행합니다 bundle init .

    databricks bundle init
    
  3. 의 경우 Template to use키를 눌러 Enter기본값을 default-python 그대로 둡니다.

  4. 의 경우 Unique name for this project기본값을 my_project그대로 두거나 다른 값을 입력한 다음 키를 누릅니다 Enter. 이 번들에 대한 루트 디렉터리의 이름이 결정됩니다. 이 루트 디렉터리가 현재 작업 디렉터리 내에 만들어집니다.

  5. 의 경우 Include a stub (sample) notebook를 선택하고 no 누릅니다 Enter. 그러면 Databricks CLI에서 샘플 Notebook을 번들에 추가하지 않도록 지시합니다.

  6. 의 경우 Include a stub (sample) DLT pipeline를 선택하고 no 누릅니다 Enter. 그러면 Databricks CLI가 번들에 샘플 Delta Live Tables 파이프라인을 정의하지 않도록 지시합니다.

  7. 의 경우 Include a stub (sample) Python package키를 눌러 Enter기본값을 yes 그대로 둡니다. 그러면 Databricks CLI에서 샘플 Python 휠 패키지 파일 및 관련 빌드 지침을 번들에 추가하도록 지시합니다.

3단계: 번들 탐색

템플릿이 생성한 파일을 보려면 새로 만든 번들의 루트 디렉터리로 전환하고 기본 설정 IDE(예: Visual Studio Code)를 사용하여 이 디렉터리를 엽니다. 특히 관심 있는 파일은 다음과 같습니다.

  • databricks.yml: 이 파일은 번들 프로그래밍 이름을 지정하고 Python 휠 작업 정의에 대한 참조를 포함하며 대상 작업 영역에 대한 설정을 지정합니다.
  • resources/<project-name>_job.yml: 이 파일은 Python 휠 작업의 설정을 지정합니다.
  • src/<project-name>: 이 디렉터리에는 Python 휠 작업이 Python 휠 파일을 빌드하는 데 사용하는 파일이 포함됩니다.

참고 항목

Databricks Runtime 12.2 LTS 이하가 설치된 대상 클러스터에 Python 휠 파일을 설치하려면 다음 최상위 매핑을 databricks.yml 파일에 추가해야 합니다.

# Applies to all tasks of type python_wheel_task.
experimental:
  python_wheel_wrapper: true

이 매핑은 Databricks CLI에 다음을 수행하도록 지시합니다.

  • 백그라운드에서 Python 휠 파일의 복사본을 배포합니다. 이 배포 경로는 일반적으로 ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
  • 대상 클러스터에 이전에 배포된 Python 휠 파일을 설치하는 지침이 포함된 Notebook을 백그라운드에서 만듭니다. 이 Notebook의 경로는 일반적으로 ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
  • Python 휠 태스크가 포함된 작업을 실행하고 해당 태스크가 이전 Python 휠 파일을 참조하는 경우 이전 Notebook을 실행하는 백그라운드에서 작업이 만들어집니다.

Azure Databricks 작업 영역 파일 시스템의 Python 휠 설치가 이러한 대상 클러스터에 자동으로 설치되므로 Databricks Runtime 13.1 이상이 설치된 대상 클러스터에 대해 이 매핑을 지정할 필요가 없습니다.

4단계: 시를 사용하도록 프로젝트의 번들을 업데이트합니다.

기본적으로 번들 템플릿은 파일 setup.py 과 함께 Python 휠 파일 setuptools 빌드를 지정합니다requirements-dev.txt. 이러한 기본값을 유지하려면 5단계: 프로젝트의 번들 구성 파일 유효성 검사로 건너뜁니다.

시 대신 setuptools를 사용하도록 프로젝트의 번들을 업데이트하려면 로컬 개발 머신이 다음 요구 사항을 충족하는지 확인합니다.

  • 시 버전 1.6 이상. 설치된 버전의 시를 확인하려면 명령 poetry -V 또는 poetry --version.를 실행합니다. 시를 설치하거나 업그레이드하려면 설치를 참조하세요.
  • Python 버전 3.10 이상. Python 버전을 확인하려면 명령을 python -V 실행하거나 python --version.
  • Databricks CLI 버전 0.209.0 이상. Databricks CLI 버전으로 명령을 databricks -v 실행하거나 databricks --version. Databricks CLI 설치 또는 업데이트를 참조하세요.

프로젝트의 번들을 다음과 같이 변경합니다.

  1. 번들의 루트 디렉터리에서 다음 명령을 실행하여 시용 Python 휠 빌드를 초기화하도록 지시 poetry 합니다.

    poetry init
    
  2. 시는 완료할 수 있는 몇 가지 프롬프트를 표시합니다. Python 휠 빌드의 경우 프로젝트 번들의 관련 기본 설정과 일치하도록 다음과 같은 프롬프트에 응답합니다.

    1. 의 경우 Package name아래에 자식 폴더 /src의 이름을 입력한 다음 키를 누릅니 Enter다. 또한 이 값은 번들 파일에 정의된 패키지 namesetup.py 값이어야 합니다.
    2. 의 경우 Version를 입력 0.0.1 하고 누릅니다 Enter. 이는 번들 파일에 정의된 버전 번호와 src/<project-name>/__init__.py 일치합니다.
    3. 의 경우 Description프로젝트 이름으로 바꾸기 <project-name> 를 입력 wheel file based on <project-name>/src 하고 키를 누릅니Enter다. 템플릿의 description 파일에 정의된 값과 setup.py 일치합니다.
    4. 의 경우 Author키를 누릅니다 Enter. 이 기본값은 템플릿의 setup.py 파일에 정의된 작성자와 일치합니다.
    5. 의 경우 License키를 누릅니다 Enter. 템플릿에 정의된 라이선스가 없습니다.
    6. 예를 Compatible Python versions들어 ^3.10대상 Azure Databricks 클러스터의 Python 버전과 일치하는 Python 버전을 입력하고 키를 누릅니 Enter다.
    7. Would you like to define your main dependencies interactively? 형식 no 및 키를 누릅니다Enter. 나중에 종속성을 정의합니다.
    8. Would you like to define your development dependencies interactively? 형식 no 및 키를 누릅니다Enter. 나중에 종속성을 정의합니다.
    9. Do you confirm generation? 키를 누릅니다Enter.
  3. 프롬프트를 완료하면 시가 pyproject.toml 번들의 프로젝트에 파일을 추가합니다. 파일에 대한 pyproject.toml 자세한 내용은 pyproject.toml 파일을 참조하세요.

  4. 번들의 루트 디렉터리에서 파일을 읽고pyproject.toml, 종속성을 확인하고, 설치하고, 종속성을 잠그는 파일을 만들고poetry.lock, 마지막으로 가상 환경을 만들도록 지시 poetry 합니다. 이렇게 하려면 다음 명령을 실행합니다.

    poetry install
    
  5. 파일의 끝에 다음 섹션을 pyproject.toml 추가하고 파일을 포함하는 디렉터리의 이름으로 바꿉 <project-name> 니다 src/<project-name>/main.py (예: my_project).

    [tool.poetry.scripts]
    main = "<project-name>.main:main"
    

    이 섹션에서는 Python 휠 작업에 대한 Python 휠의 진입점을 지정합니다.

  6. 번들 databricks.yml 파일의 최상위 수준에 다음 매핑을 추가합니다.

    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    

    이 매핑은 Databricks CLI에 시를 사용하여 Python 휠 파일을 빌드하도록 지시합니다.

  7. 시가 setup.py 필요하지 않으므로 번들에서 파일과 requirements-dev.txt 파일을 삭제합니다.

5단계: 프로젝트의 번들 구성 파일 유효성 검사

이 단계에서는 번들 구성이 유효한지 확인합니다.

  1. 루트 디렉터리에서 Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle validate 합니다.

    databricks bundle validate
    
  2. 번들 구성 요약이 반환되면 유효성 검사가 성공했습니다. 오류가 반환되면 오류를 수정한 다음 이 단계를 반복합니다.

이 단계 후에 번들을 변경한 경우 이 단계를 반복하여 번들 구성이 여전히 유효한지 확인해야 합니다.

6단계: Python 휠 파일 빌드 및 원격 작업 영역에 로컬 프로젝트 배포

이 단계에서는 Python 휠 파일을 빌드하고, 빌드된 Python 휠 파일을 원격 Azure Databricks 작업 영역에 배포하고, 작업 영역 내에서 Azure Databricks 작업을 만듭니다.

  1. 사용하는 setuptools경우 다음 명령을 실행하여 아직 설치하지 않은 경우 패키지 및 setuptools 패키지를 설치 wheel 합니다.

    pip3 install --upgrade wheel setuptools
    
  2. Visual Studio Code 터미널에서 Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle deploy 합니다.

    databricks bundle deploy -t dev
    
  3. 로컬로 빌드된 Python 휠 파일이 배포되었는지 확인하려면 다음을 수행합니다.

    1. Azure Databricks 작업 영역의 사이드바에서 작업 영역을 클릭합니다.
    2. 작업 영역 사용자><your-username>> .bundle<project-name>>>개발 > 아티팩 > 트 .internal<random-guid>> 폴더를 > 클릭합니다.

    Python 휠 파일은 이 폴더에 있어야 합니다.

  4. 작업이 만들어졌는지 여부를 확인하려면 다음을 수행합니다.

    1. Azure Databricks 작업 영역의 사이드바에서 워크플로를 클릭합니다.
    2. 작업 탭에서 [개발<your-username>] <project-name>_job 클릭합니다.
    3. 작업 탭을 클릭합니다.

    main_task 한 가지 작업이 있어야 합니다.

이 단계 후에 번들을 변경한 경우 5-6단계를 반복하여 번들 구성이 여전히 유효한지 확인한 다음 프로젝트를 다시 배포해야 합니다.

7단계: 배포된 프로젝트 실행

이 단계에서는 작업 영역에서 Azure Databricks 작업을 실행합니다.

  1. 루트 디렉터리에서 Databricks CLI를 사용하여 다음과 같이 명령을 실행하고 bundle run 2단계의 프로젝트 이름으로 바꿉 <project-name> 니다.

    databricks bundle run -t dev <project-name>_job
    
  2. 터미널에 표시되는 값을 Run URL 복사하고 이 값을 웹 브라우저에 붙여넣어 Azure Databricks 작업 영역을 엽니다.

  3. Azure Databricks 작업 영역에서 작업이 성공적으로 완료되고 녹색 제목 표시줄이 표시되면 main_task 작업을 클릭하여 결과를 확인합니다.

이 단계 후에 번들을 변경한 경우 5-7단계를 반복하여 번들 구성이 여전히 유효한지 확인하고, 프로젝트를 다시 배포하고, 재배포된 프로젝트를 실행해야 합니다.

템플릿을 사용하여 번들을 만드는 단계의 끝에 도달했습니다.

수동으로 번들 만들기

이 단계에서는 처음부터 직접 번들을 만듭니다. 이 단계에서는 Python 휠 파일로 빌드할 파일과 이 Python 휠 파일을 빌드하는 Databricks 작업의 정의로 구성된 번들을 만드는 방법을 안내합니다. 그런 다음 Databricks 작업 영역 내의 Python 휠 작업에서 배포된 파일의 유효성을 검사, 배포 및 Python 휠 파일로 빌드합니다.

이러한 단계에는 YAML 파일에 콘텐츠 추가가 포함됩니다. 필요에 따라 YAML 파일을 사용할 때 자동 스키마 제안 및 작업을 제공하는 IDE(통합 개발 환경)를 사용할 수 있습니다. 다음 단계에서는 Visual Studio Code Marketplace에서 설치된 YAML 확장과 함께 Visual Studio Code를 사용합니다.

다음 단계에서는 이미 알고 있다고 가정합니다.

  • 시 또는 setuptools.를 사용하여 Python 휠 파일을 만들고, 빌드하고, 작업하는 방법 시의 경우 기본 사용을 참조하세요. 자세한 내용은 setuptoolsPython 패키징 사용자 가이드를 참조 하세요.
  • Azure Databricks 작업의 일부로 Python 휠 파일을 사용하는 방법입니다. Azure Databricks 작업에서 Python 휠 파일 사용을 참조 하세요.

다음 지침에 따라 시를 사용하여 Python 휠 파일을 빌드하거나 setuptoolsPython 휠 파일을 배포한 다음 배포된 Python 휠 파일을 실행하는 샘플 번들을 만듭니다.

Python 휠 파일을 이미 빌드하고 배포하고 실행하려는 경우 3단계: 번들 구성 파일의 번들 구성 파일에서 Python 휠 설정을 지정하려면 건너뜁니다. 번들 구성 파일 만들기.

1단계: 인증 설정

이 단계에서는 개발 컴퓨터의 Databricks CLI와 Azure Databricks 작업 영역 간에 인증을 설정합니다. 이 문서에서는 OAuth U2M(사용자-컴퓨터) 인증 및 인증을 위해 명명된 DEFAULT 해당 Azure Databricks 구성 프로필을 사용하려고 하는 것으로 가정합니다.

참고 항목

U2M 인증은 이러한 단계를 실시간으로 시도하는 데 적합합니다. 완전히 자동화된 워크플로의 경우 Databricks는 OAuth M2M(컴퓨터 간) 인증을 대신 사용하는 것이 좋습니다. 인증에서 M2M 인증 설정 지침을 참조하세요.

  1. Databricks CLI를 사용하여 각 대상 작업 영역에 대해 다음 명령을 실행하여 OAuth 토큰 관리를 로컬로 시작합니다.

    다음 명령에서 작업 영역별 Azure Databricks URL로 바꿉 <workspace-url> 니다. 예를 들면 다음과 같습니다https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI는 Azure Databricks 구성 프로필로 입력한 정보를 저장하라는 메시지를 표시합니다. 제안된 프로필 이름을 적용하려면 누르 Enter 거나 새 프로필 또는 기존 프로필의 이름을 입력합니다. 이름이 같은 기존 프로필은 입력한 정보로 덮어씁니다. 프로필을 사용하여 여러 작업 영역에서 인증 컨텍스트를 빠르게 전환할 수 있습니다.

    기존 프로필 목록을 얻으려면 별도의 터미널 또는 명령 프롬프트에서 Databricks CLI를 사용하여 명령을 databricks auth profiles실행합니다. 특정 프로필의 기존 설정을 보려면 명령을 databricks auth env --profile <profile-name>실행합니다.

  3. 웹 브라우저에서 화면의 지침을 완료하여 Azure Databricks 작업 영역에 로그인합니다.

  4. 프로필의 현재 OAuth 토큰 값과 토큰의 예정된 만료 타임스탬프를 보려면 다음 명령 중 하나를 실행합니다.

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    동일한 --host 값을 가진 여러 프로필이 있는 경우 Databricks CLI가 올바른 일치하는 OAuth 토큰 정보를 찾을 수 있도록 옵션과 -p 옵션을 함께 지정 --host 해야 할 수 있습니다.

2단계: 번들 만들기

번들에는 배포하려는 아티팩트와 실행하려는 워크플로에 대한 설정이 포함됩니다.

  1. 번들의 루트에서 시를 사용하는지 아니면 setuptools Python 휠 파일을 빌드하는지에 따라 다음 폴더와 파일을 만듭니다.

    Poetry

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── pyproject.toml
    

    Setuptools

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── setup.py
    
  2. 파일을 비워 __init__.py 둡니다.

  3. 파일에 다음 코드를 추가한 main.py 다음 파일을 저장합니다.

    from my_package.my_module import *
    
    def main():
    
      first = 200
      second = 400
    
      print(f"{first} + {second} = {add_two_numbers(first, second)}")
      print(f"{second} - {first} = {subtract_two_numbers(second, first)}")
      print(f"{first} * {second} = {multiply_two_numbers(first, second)}")
      print(f"{second} / {first} = {divide_two_numbers(second, first)}")
    
    if __name__ == "__main__":
      main()
    
  4. 파일에 다음 코드를 추가한 my_module.py 다음 파일을 저장합니다.

    def add_two_numbers(a, b):
      return a + b
    
    def subtract_two_numbers(a, b):
      return a - b
    
    def multiply_two_numbers(a, b):
      return a * b
    
    def divide_two_numbers(a, b):
      return a / b
    
  5. 또는 setup.py 파일에 다음 코드를 추가한 pyproject.toml 다음 파일을 저장합니다.

    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"
      ]
    )
    
    • 조직의 URL로 대체 https://<my-url> 합니다.
    • 조직의 기본 연락처 이름으로 대체 <my-author-name> 합니다.
    • 조직의 기본 전자 메일 연락처 주소로 대체 <my-author-name>@<my-organization> 합니다.
    • Python 휠 파일에 대한 표시 설명으로 대체 <my-package-description> 합니다.

3단계: 번들 구성 파일 만들기

번들 구성 파일은 배포하려는 아티팩트와 실행하려는 워크플로를 설명합니다.

  1. 번들 루트에 라는 databricks.yml번들 구성 파일을 추가합니다. 이 파일에 다음 코드를 추가합니다.

    Poetry

    참고 항목

    Python 휠 파일을 이미 빌드하고 배포하려는 경우 매핑을 생략 artifacts 하여 다음 번들 구성 파일을 수정합니다. 그러면 Databricks CLI는 Python 휠 파일이 이미 빌드되었다고 가정하고 배열의 whl 항목에 libraries 지정된 파일을 자동으로 배포합니다.

    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

    bundle:
      name: my-wheel-bundle
    
    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>
    

    <workspace-url>작업 영역별 URL로 바꿉니다(예: https://adb-1234567890123456.7.azuredatabricks.net).

    artifacts 이 매핑은 시를 사용하여 Python 휠 파일을 빌드하는 데 필요하며, Python 휠 파일을 빌드하려면 선택 사항입니다setuptools. 매핑에는 artifacts 다음 매핑이 있는 하나 이상의 아티팩트 정의가 포함됩니다.

    • 매핑이 type 있어야 하며 Python 휠 파일을 빌드하도록 지정하도록 whl 설정해야 합니다. 에 대해 setuptools아티 whl 팩트 정의가 지정되지 않은 경우 기본값입니다.
    • 매핑은 path 시 또는 에 대한 파일의 setup.py 파일 setuptools경로를 pyproject.toml 나타냅니다. 이 경로는 파일을 기준으로 합니다 databricks.yml . 의 경우 setuptools이 경로는 기본적으로 파일과 databricks.yml 동일한 디렉터리입니다 . .
    • 매핑은 build Python 휠 파일을 빌드하기 위해 실행할 사용자 지정 빌드 명령을 나타냅니다. 의 경우 setuptools이 명령은 기본적으로 사용됩니다 python3 setup.py bdist wheel .
    • 매핑은 files Python 휠 빌드에 포함할 추가 파일을 지정하는 하나 이상의 source 매핑으로 구성됩니다. 기본값은 없습니다.

    참고 항목

    Databricks Runtime 12.2 LTS 이하가 설치된 대상 클러스터에 Python 휠 파일을 설치하려면 다음 최상위 매핑을 databricks.yml 파일에 추가해야 합니다.

    # Applies to jobs with python_wheel_task and that use
    # clusters with Databricks Runtime 13.0 or below installed.
    experimental:
      python_wheel_wrapper: true
    

    이 매핑은 Databricks CLI에 다음을 수행하도록 지시합니다.

    • 백그라운드에서 Python 휠 파일의 복사본을 배포합니다. 이 배포 경로는 일반적으로 ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
    • 대상 클러스터에 이전에 배포된 Python 휠 파일을 설치하는 지침이 포함된 Notebook을 백그라운드에서 만듭니다. 이 Notebook의 경로는 일반적으로 ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
    • Python 휠 태스크가 포함된 작업을 실행하고 해당 태스크가 이전 Python 휠 파일을 참조하는 경우 이전 Notebook을 실행하는 작업이 백그라운드에서 만들어집니다.

    Azure Databricks 작업 영역 파일 시스템의 Python 휠 설치가 이러한 대상 클러스터에 자동으로 설치되므로 Databricks Runtime 13.1 이상이 설치된 대상 클러스터에 대해 이 매핑을 지정할 필요가 없습니다.

  2. 시를 사용하는 경우 다음을 수행합니다.

    • 아직 설치되지 않은 경우 시에 버전 1.6 이상을 설치합니다. 설치된 버전의 시를 확인하려면 명령 poetry -V 또는 poetry --version.를 실행합니다.
    • Python 버전 3.10 이상이 설치되어 있는지 확인합니다. Python 버전을 확인하려면 명령을 python -V 실행하거나 python --version.
    • Databricks CLI 버전 0.209.0 이상이 있는지 확인합니다. Databricks CLI 버전으로 명령을 databricks -v 실행하거나 databricks --version. Databricks CLI 설치 또는 업데이트를 참조하세요.
  3. 사용하는 setuptoolswheel 경우 다음 명령을 실행하여 패키지 및 setuptools 패키지를 아직 설치하지 않은 경우 설치합니다.

    pip3 install --upgrade wheel setuptools
    
  4. 이 번들을 Git 공급자와 함께 저장하려는 경우 프로젝트의 루트에 파일을 추가하고 .gitignore 이 파일에 다음 항목을 추가합니다.

    Poetry

    .databricks
    dist
    

    Setuptools

    .databricks
    build
    dist
    src/my_package/my_package.egg-info
    

4단계: 프로젝트의 번들 구성 파일 유효성 검사

이 단계에서는 번들 구성이 유효한지 확인합니다.

  1. 루트 디렉터리에서 번들 구성 파일의 유효성을 검사합니다.

    databricks bundle validate
    
  2. 번들 구성 요약이 반환되면 유효성 검사가 성공했습니다. 오류가 반환되면 오류를 수정한 다음 이 단계를 반복합니다.

이 단계 후에 번들을 변경한 경우 이 단계를 반복하여 번들 구성이 여전히 유효한지 확인해야 합니다.

5단계: Python 휠 파일 빌드 및 원격 작업 영역에 로컬 프로젝트 배포

Python 휠 파일을 로컬로 빌드하고, 빌드된 Python 휠 파일을 작업 영역에 배포하고, Notebook을 작업 영역에 배포하고, 작업 영역에서 작업을 만듭니다.

databricks bundle deploy -t dev

6단계: 배포된 프로젝트 실행

  1. 배포된 Notebook을 사용하여 배포된 Python 휠 파일을 호출하는 배포된 작업을 실행합니다.

    databricks bundle run -t dev wheel-job
    
  2. 출력에서 복사하여 Run URL 웹 브라우저의 주소 표시줄에 붙여넣습니다.

  3. 작업 실행의 출력 페이지에 다음 결과가 표시됩니다.

    200 + 400 = 600
    400 - 200 = 200
    200 * 400 = 80000
    400 / 200 = 2.0
    

이 단계 후에 번들을 변경한 경우 3-5단계를 반복하여 번들 구성이 여전히 유효한지 확인하고, 프로젝트를 다시 배포하고, 재배포된 프로젝트를 실행해야 합니다.

작업에 대한 Python 휠 파일 빌드 및 설치

시를 사용하여 Python 휠 파일을 빌드한 setuptools다음 작업에서 해당 Python 휠 파일을 사용하려면 파일에 하나 또는 두 개의 매핑을 databricks.yml 추가해야 합니다.

시를 사용하는 경우 파일에 다음 artifacts 매핑을 databricks.yml 포함해야 합니다. 이 매핑은 poetry build 명령을 실행하고 파일과 동일한 디렉터리에 databricks.yml 있는 파일을 사용합니다pyproject.toml.

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

참고 항목

매핑은 artifacts .에 대한 setuptools선택 사항입니다. 기본적으로 Databricks CLI의 경우 setuptools 명령을 python3 setup.py bdist_wheel 실행하고 파일과 동일한 디렉터리에 databricks.yml 있는 파일을 사용합니다setup.py. Databricks CLI는 패키지 및 패키지가 아직 설치되지 않은 경우 설치 wheelsetuptools 같은 pip3 install --upgrade wheel setuptools 명령을 이미 실행했다고 가정합니다.

또한 작업 태스크의 libraries 매핑에는 선언된 구성 파일을 기준으로 빌드된 Python 휠 파일의 경로를 지정하는 값이 포함되어 whl 야 합니다. 다음 예제에서는 전자 필기장 작업에서 이를 보여줍니다(줄임표는 간결성을 위해 생략된 콘텐츠를 나타냅니다.)

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-job-notebook-task
          notebook_task:
            notebook_path: ./my_notebook.py
          libraries:
            - whl: ./dist/*.whl
          new_cluster:
            # ...

파이프라인용 Python 휠 파일 빌드 및 설치

시를 사용하여 Python 휠 파일을 빌드한 setuptools 다음 Delta Live Tables 파이프라인에서 해당 Python 휠 파일을 참조하려면 시를 databricks.yml 사용하는 경우 파일에 매핑을 추가해야 하며 다음과 같이 파이프라인 Notebook에 명령을 추가 %pip install 해야 합니다.

시를 사용하는 경우 파일에 다음 artifacts 매핑을 databricks.yml 포함해야 합니다. 이 매핑은 poetry build 명령을 실행하고 파일과 동일한 디렉터리에 databricks.yml 있는 파일을 사용합니다pyproject.toml.

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

참고 항목

매핑은 artifacts .에 대한 setuptools선택 사항입니다. 기본적으로 Databricks CLI의 경우 setuptools 명령을 python3 setup.py bdist_wheel 실행하고 파일과 동일한 디렉터리에 databricks.yml 있는 파일을 사용합니다setup.py. Databricks CLI는 패키지 및 패키지가 아직 설치되지 않은 경우 설치 wheelsetuptools 같은 pip3 install --upgrade wheel setuptools 명령을 이미 실행했다고 가정합니다.

또한 관련 파이프라인 Notebook에는 빌드된 %pip install Python 휠 파일을 설치하는 명령이 포함되어야 합니다. Python 라이브러리를 참조 하세요.