다음을 통해 공유


Databricks 자산 번들을 사용하여 Lakeflow Spark 선언적 파이프라인 개발

단순히 번들이라고도 하는 Databricks 자산 번들을 사용하면 Lakeflow Spark 선언적 파이프라인과 같은 Azure Databricks 리소스의 유효성을 프로그래밍 방식으로 유효성 검사, 배포 및 실행할 수 있습니다. Databricks 자산 번들이란 무엇입니까?를 참조하세요.

이 페이지에서는 파이프라인을 프로그래밍 방식으로 관리하는 번들을 만드는 방법을 설명합니다. Lakeflow Spark 선언적 파이프라인을 참조하세요. 번들은 Python용 Databricks 자산 번들 기본 번들 템플릿을 사용하여 만들어지며, 이를 실행하는 ETL 파이프라인 및 작업을 정의합니다. 그런 다음 Azure Databricks 작업 영역에서 배포된 파이프라인을 유효성 검사, 배포 및 실행합니다.

번들로 이동하려는 Azure Databricks 사용자 인터페이스 또는 API를 사용하여 만든 기존 파이프라인이 있는 경우 번들의 구성 파일에서 정의해야 합니다. Databricks는 먼저 아래 단계를 사용하여 번들을 만든 다음, 번들에 구성 및 기타 원본을 추가하는 것이 좋습니다. UI를 사용하여 기존 파이프라인 정의 검색을 참조하세요.

요구 사항

  • Databricks CLI 버전 0.276.0 이상. 설치된 Databricks CLI 버전을 확인하려면 databricks -v 명령을 실행합니다. Databricks CLI를 설치하려면 Databricks CLI 설치 또는 업데이트를 참조하세요.
  • uv 는 테스트를 실행하고 IDE에서 이 프로젝트에 대한 종속성을 설치하는 데 필요합니다.
  • 원격 작업 영역에는 작업 영역 파일이 활성화되어 있어야 합니다. 작업 영역 파일이란?을 참조하세요.
  • 파이프라인에 있는 테이블을 위한 기존 카탈로그입니다. 카탈로그 만들기 참조.

(선택 사항) 로컬 파이프라인 개발을 지원하는 Python 모듈 설치

Databricks는 IDE에서 코드를 작성할 때 구문 검사, 자동 완성 및 데이터 형식 검사를 제공하여 Lakeflow Spark 선언적 파이프라인 코드의 로컬 개발을 지원하는 Python 모듈을 제공합니다.

로컬 개발을 위한 Python 모듈은 PyPi에서 사용할 수 있습니다. 모듈을 설치하려면 DLT용 Python 스텁을 참조하세요.

1단계: 인증 설정

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

참고

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

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

    다음 명령에서 <workspace-url>를 Azure Databricks 작업 영역 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 토큰 정보를 찾을 수 있도록 --host-p 옵션을 함께 지정해야 할 수 있습니다.

2단계: 번들 만들기

기본 Python 번들 프로젝트 템플릿을 사용하여 번들을 초기화합니다.

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

  2. Databricks CLI를 사용하여 bundle init 명령을 실행합니다.

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

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

  5. Include a job that runs a notebook의 경우, no를 선택하고 Enter을 누릅니다. 이 옵션에 연결된 샘플 노트북에는 파이프라인 코드가 없습니다.

  6. Include an ETL pipeline의 경우, yes를 눌러 기본값 Enter를 그대로 둡니다. 그러면 샘플 파이프라인 코드와 파이프라인 정의가 추가됩니다.

  7. Include a stub (sample) Python package의 경우, no를 선택하고 Enter을 누릅니다.

  8. Use serverless의 경우, yes를 선택하고 Enter을 누릅니다. 그러면 Databricks CLI가 서버리스 컴퓨팅에서 실행되도록 번들을 구성하도록 지시합니다.

  9. Unity 카탈로그에 이미 존재하는 카탈로그의 이름을 Default catalog for any tables created by this project [hive_metastore]에 입력하세요.

  10. Use a personal schema for each user working on this project.에 대해 yes을 선택합니다.

3단계: 번들 탐색

템플릿이 생성한 파일을 보려면, 새로 생성된 번들의 루트 디렉터리로 전환합니다. 특히 관심 있는 파일은 다음과 같습니다.

  • databricks.yml: 이 파일은 번들의 프로그래밍 이름을 지정하고, 번들의 파일에 대한 참조를 포함하고, 카탈로그 및 스키마 변수를 정의하며, 대상 작업 영역에 대한 설정을 지정합니다.
  • resources/sample_job.ymlresources/<project-name>_etl_pipeline.yml: 이러한 파일은 파이프라인 새로 고침 작업이 포함된 작업과 파이프라인의 설정을 정의합니다. 파이프라인 설정에 대한 자세한 내용은 파이프라인을 참조하세요.
  • src/: 이 폴더에는 샘플 파이프라인의 원본 파일, 탐색 및 변환이 포함됩니다.
  • tests/fixtures/: 이러한 폴더에는 파이프라인용 샘플 유닛 테스트와 데이터 세트를 위한 테스트 픽스처가 포함되어 있습니다.
  • README.md: 이 파일에는 이 번들 템플릿을 시작하고 사용하는 방법에 대한 추가 정보가 포함되어 있습니다.

4단계: 번들 구성 유효성 검사

이제 번들 구성이 유효한지 확인합니다.

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

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

5단계: 원격 작업 영역에 번들 배포

다음으로, 원격 Azure Databricks 작업 영역에 번들을 배포하고 작업 영역에서 파이프라인을 확인합니다.

  1. 번들 루트에서 Databricks CLI를 사용하여 명령을 실행합니다 bundle deploy .

    databricks bundle deploy --target dev
    

    참고

    기본 템플릿에는 매일 파이프라인을 실행하는 작업이 포함되어 있지만 대상 dev 배포 모드에 대해 일시 중지됩니다. Databricks 자산 번들 배포 모드를 참조하세요.

  2. 번들이 배포되었는지 확인합니다.

    1. Azure Databricks 작업 영역의 사이드바에서 작업 영역을 클릭합니다.
    2. 사용자 ><your-username>>.bundle 폴더를 클릭하고 번들 프로젝트를 찾습니다.
  3. 파이프라인이 만들어졌는지 확인합니다.

    1. Azure Databricks 작업 영역의 사이드바에서 작업 및 파이프라인을 클릭합니다.
    2. 필요에 따라 파이프라인을 선택하고 내 소유 필터를 선택합니다.
    3. [개발<your-username>] <project-name>_etl 클릭합니다.

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

6단계: 배포된 파이프라인 실행

이제 명령줄에서 작업 영역에서 파이프라인 실행을 트리거합니다.

  1. 루트 디렉터리에서 Databricks CLI를 사용하여 bundle run 명령을 실행하며 <project-name>을 프로젝트 이름으로 대체합니다.

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

  3. Azure Databricks 작업 영역에서 파이프라인 실행이 성공적으로 완료되면 구체화된 보기를 클릭하여 각 보기의 세부 정보를 확인합니다.

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

7단계: 테스트 실행

마지막으로 테스트를 로컬로 실행하는 데 사용합니다 pytest .

uv run pytest

8단계: 정리

이 단계에서는 작업 영역에서 배포된 번들 및 파이프라인을 삭제합니다.

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

    databricks bundle destroy --target dev
    
  2. 리소스, 파이프라인 및 파이프라인에서 관리하는 테이블 및 뷰를 영구적으로 삭제하라는 메시지가 표시되면 입력 y 하고 누릅니다 Enter.

  3. 개발 컴퓨터에서 번들을 삭제하려는 경우 이제 로컬 프로젝트 디렉터리를 삭제할 수 있습니다.