Databricks 자산 번들이란?
DAB(Databricks 자산 번들)는 데이터 및 AI 프로젝트에 대한 소스 제어, 코드 검토, 테스트, CI/CD(연속 통합 및 전달)를 비롯한 소프트웨어 엔지니어링 모범 사례를 쉽게 채택할 수 있는 도구입니다. 번들을 사용하면 작업, 파이프라인, Notebook과 같은 Databricks 리소스를 원본 파일로 설명할 수 있습니다. 이러한 원본 파일은 프로젝트의 구조화, 테스트 및 배포 방법을 포함하여 프로젝트의 엔드 투 엔드 정의를 제공하므로 활성 개발 중에 프로젝트에서 공동 작업을 보다 쉽게 할 수 있습니다.
번들은 프로젝트의 원본 파일과 함께 메타데이터를 포함할 방법을 제공합니다. 번들을 사용하여 프로젝트를 배포하는 경우 이 메타데이터는 인프라 및 기타 리소스를 프로비전하는 데 사용됩니다. 그러면 프로젝트의 원본 파일 및 메타데이터 컬렉션이 대상 환경에 단일 번들로 배포됩니다. 번들에는 다음과 같은 부분이 포함됩니다:
- 필수 클라우드 인프라 및 작업 영역 구성
- 비즈니스 논리를 포함하는 Notebook 및 Python 파일과 같은 원본 파일
- Azure Databricks 작업, Delta Live Tables 파이프라인, 모델 서비스 엔드포인트, MLflow 실험, MLflow 등록 모델과 같은 Databricks 리소스에 대한 정의 및 설정
- 단위 테스트 및 통합 테스트
다음 다이어그램은 번들을 사용한 개발 및 CI/CD 파이프라인에 대한 개략적인 보기를 제공합니다.
Databricks 자산 번들은 언제 사용해야 하나요?
Databricks 자산 번들은 Databricks 프로젝트를 관리하기 위한 IaC(Infrastructure-as-code) 접근 방식입니다. 여러 기여자 및 자동화가 필수적인 복잡한 프로젝트를 관리하려는 경우 이를 사용하며 CI/CD(연속 통합 및 배포)가 필요합니다. 번들은 소스 코드와 함께 만들고 유지 관리하는 YAML 템플릿 및 파일을 통해 정의되고 관리되므로 IaC가 적절한 접근 방식인 시나리오에 잘 매핑됩니다.
번들에 대한 몇 가지 이상적인 시나리오는 다음과 같습니다.
- 팀 기반 환경에서 데이터, 분석 및 ML 프로젝트를 개발합니다. 번들은 다양한 소스 파일을 효율적으로 구성하고 관리하는 데 도움이 될 수 있습니다. 이렇게 하면 원활한 협업과 프로세스 간소화가 보장됩니다.
- ML 문제를 더 빠르게 반복합니다. 처음부터 프로덕션 모범 사례를 따르는 ML 프로젝트를 사용하여 ML 파이프라인 리소스(예: 학습 및 일괄 처리 유추 작업)를 관리합니다.
- 기본 권한, 서비스 주체 및 CI/CD 구성을 포함하는 사용자 지정 번들 템플릿을 작성하여 새 프로젝트에 대한 조직의 표준을 설정합니다.
- 규정 준수: 규정 준수가 중요한 관심사인 산업에서 번들은 코드 및 인프라 작업의 버전 관리 기록을 유지하는 데 도움이 될 수 있습니다. 이를 통해 거버넌스를 지원하고 필요한 규정 준수 표준을 충족할 수 있습니다.
Databricks 자산 번들은 어떻게 작동합니까?
번들 메타데이터는 Databricks 프로젝트의 아티팩트, 리소스, 구성을 지정하는 YAML 파일을 사용하여 정의됩니다. 이 YAML 파일을 수동으로 만들거나 번들 템플릿을 사용하여 생성할 수 있습니다. 그런 다음 Databricks CLI를 사용하여 이러한 번들 YAML 파일로 번들의 유효성을 검사, 배포 및 실행할 수 있습니다. IDE, 터미널 또는 Databricks 내에서 직접 번들 프로젝트를 실행할 수 있습니다. 이 문서에서는 Databricks CLI를 사용합니다.
번들은 수동으로 만들거나 템플릿을 기반으로 만들 수 있습니다. Databricks CLI는 간단한 사용 사례에 대한 기본 템플릿을 제공하지만 더 구체적이거나 복잡한 작업의 경우 사용자 지정 번들 템플릿을 만들어 팀의 모범 사례를 구현하고 일반적인 구성을 일관되게 유지할 수 있습니다.
Databricks 자산 번들을 표현하는 데 사용되는 YAML 구성에 대한 자세한 내용은 Databricks 자산 번들 구성을 참조하세요.
번들을 사용하도록 환경 구성
Databricks CLI를 사용하여 명령줄에서 번들을 쉽게 배포합니다. Databricks CLI를 설치하려면 Databricks CLI 설치 또는 업데이트를 참조하세요.
Databricks 자산 번들은 Databricks CLI 버전 0.218.0 이상에서 사용할 수 있습니다. 설치된 Databricks CLI의 버전을 확인하려면 다음 명령을 실행합니다.
databricks --version
Databricks CLI를 설치한 후 원격 Databricks 작업 영역이 올바르게 구성되었는지 확인합니다. 이 기능은 .py
및 .yml
파일과 같은 Databricks Notebook 이외의 파일 작업을 지원하므로 번들을 사용하려면 작업 영역 파일 기능을 사용하도록 설정해야 합니다. Databricks Runtime 버전 11.3 LTS 이상을 사용하는 경우 이 기능은 기본적으로 활성화됩니다.
인증
Azure Databricks는 다음과 같은 몇 가지 인증 방법을 제공합니다.
- 웹 브라우저를 사용하여 대상 Azure Databricks 작업 영역에 로그인하는 수동 워크플로와 같은 참석 인증 시나리오의 경우(Databricks CLI에서 메시지가 표시되면) OAuth U2M(사용자 대 컴퓨터) 인증을 사용합니다. 이 방법은 Databricks 자산 번들에 대한 시작 자습서로 실험하거나 번들을 빠르게 개발하는 데 적합합니다.
- 웹 브라우저를 사용하여 대상 Azure Databricks 작업 영역에 로그인할 기회가 없는 완전 자동화된 워크플로와 같은 무인 인증 시나리오의 경우 OAuth M2M(machine-to-machine) 인증을 사용합니다. 이 방법을 사용하려면 Azure Databricks 서비스 주체를 사용해야 하며 GitHub와 같은 CI/CD 시스템에서 Databricks 자산 번들을 사용하는 데 적합합니다.
OAuth U2M 인증의 경우 다음을 수행합니다.
Databricks CLI를 사용하여 각 대상 작업 영역에 대해 다음 명령을 실행하고 OAuth 토큰 관리를 로컬로 시작합니다.
다음 명령에서
<workspace-url>
를 Azure Databricks 작업 영역 URL로 바꿉니다(예:https://adb-1234567890123456.7.azuredatabricks.net
).databricks auth login --host <workspace-url>
Databricks CLI는 Azure Databricks 구성 프로필로 입력한 정보를 저장하라는 메시지를 표시합니다.
Enter
를 눌러 제안된 프로필 이름을 수락하거나 새 프로필 또는 기존 프로필의 이름을 입력합니다. 이름이 같은 기존 프로필은 입력한 정보로 덮어쓰여집니다. 프로필을 사용하여 여러 작업 영역에서 인증 컨텍스트를 빠르게 전환할 수 있습니다.기존 프로필 목록을 얻으려면 별도의 터미널 또는 명령 프롬프트에서 Databricks CLI를 사용하여
databricks auth profiles
명령을 실행합니다. 특정 프로필의 기존 설정을 보려면databricks auth env --profile <profile-name>
명령을 실행합니다.웹 브라우저에서 화면상의 지침을 완료하여 Azure Databricks 작업 영역에 로그인합니다.
프로필의 현재 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
옵션을 함께 지정해야 할 수 있습니다.
번들의 유효성을 검사하거나 배포, 실행 또는 삭제할 때마다 다음 방법 중 하나 이상의 방법으로 이 구성 프로필의 이름을 사용할 수 있습니다.
- 명령줄 옵션
-p <profile-name>
를 사용하여databricks bundle validate
,databricks bundle deploy
,databricks bundle run
또는databricks bundle destroy
명령에 추가합니다. Databricks 자산 번들 개발을 참조하세요. - 번들 구성 파일의 최상위 수준
workspace
매핑에 있는profile
매핑의 값으로 설정합니다(Databricks는 번들 구성 파일의 이식성을 높이기 위해profile
매핑 대신 Azure Databricks 작업 영역의 URL로 설정된host
매핑을 사용하는 것을 권장합니다). 작업 영역에서profile
매핑의 적용 범위를 참조하세요. - 구성 프로필의 이름이
DEFAULT
인 경우 명령줄 옵션-p <profile-name>
또는profile
(또는host
) 매핑이 지정되지 않은 경우 기본적으로 이 이름이 사용됩니다.
OAuth M2M 인증의 경우 다음을 수행합니다.
OAuth M2M 인증 설정 지침을 완료합니다. OAuth(OAuth M2M)를 사용하여 서비스 주체로 Azure Databricks에 액세스 인증을 참조하세요.
다음 방법 중 하나로 대상 컴퓨팅 리소스에 Databricks CLI를 설치합니다.
- 컴퓨팅 리소스에 실시간으로 Databricks CLI를 수동으로 설치하려면 Databricks CLI 설치 또는 업데이트를 참조하세요.
- GitHub Actions를 사용하여 GitHub 가상 머신에 Databricks CLI를 자동으로 설치하려면 GitHub의 setup-cli를 참조하세요.
- 다른 CI/CD 시스템을 사용하여 가상 머신에 Databricks CLI를 자동으로 설치하려면 CI/CD 시스템 공급자의 설명서와 Databricks CLI 설치 또는 업데이트를 참조하세요.
컴퓨팅 리소스에서 다음과 같이 다음 환경 변수를 설정합니다.
DATABRICKS_HOST
를 Azure Databricks 작업 영역별 URL(예:https://adb-1234567890123456.7.azuredatabricks.net
)로 설정합니다.DATABRICKS_CLIENT_ID
를 Azure Databricks 서비스 주체의 애플리케이션 ID 값으로 설정합니다.DATABRICKS_CLIENT_SECRET
를 Azure Databricks 서비스 주체의 OAuth 비밀 값으로 설정합니다.
이러한 환경 변수를 설정하려면 대상 컴퓨팅 리소스의 운영 체제 또는 CI/CD 시스템에 대한 설명서를 참조하세요.
첫 번째 Databricks 자산 번들 개발
번들 개발을 시작하는 가장 빠른 방법은 번들 프로젝트 템플릿을 사용하는 것입니다. Databricks CLI 번들 init 명령을 사용하여 첫 번째 번들 프로젝트를 만듭니다. 이 명령은 Databricks에서 제공하는 기본 번들 템플릿을 선택하고 프로젝트 변수를 초기화하기 위한 일련의 질문을 합니다.
databricks bundle init
번들을 만드는 것은 번들의 수명 주기에서 첫 번째 단계입니다. 두 번째 단계는 databricks.yml
및 리소스 구성 파일에서 번들 설정 및 리소스를 정의하는 핵심 요소인 번들을 개발하는 것입니다. 번들 구성에 대한 자세한 내용은 Databricks 자산 번들 구성을 참조하세요.
팁
번들 구성 예제는 번들 구성 예제 및 GitHub의 번들 예제 리포지토리에서 찾을 수 있습니다.
다음 단계
- Azure Databricks 작업 영역에 Notebook을 배포한 다음 배포된 Notebook을 Azure Databricks 작업으로 실행하는 번들을 만듭니다. Databricks 자산 번들을 사용하여 Azure Databricks에서 작업 개발을 참조하세요.
- Azure Databricks 작업 영역에 Notebook을 배포한 다음 배포된 Notebook을 Delta Live Tables 파이프라인으로 실행하는 번들을 만듭니다. Databricks 자산 번들을 사용하여 Delta Live Tables 파이프라인 개발을 참조하세요.
- MLOps 스택을 배포하고 실행하는 번들을 만듭니다. MLOps 스택에 대한 Databricks 자산 번들을 참조하세요.
- GitHub에서 CI/CD(연속 통합/지속적인 배포) 워크플로에 번들을 추가합니다. Databricks 자산 번들 및 GitHub Actions를 사용하여 CI/CD 워크플로 실행을 참조하세요.
- Python 휠 파일을 빌드, 배포 및 호출하는 번들을 만듭니다. Databricks 자산 번들을 사용하여 Python 휠 파일 개발을 참조하세요.
- 사용자와 다른 사용자가 번들을 만드는 데 사용할 수 있는 사용자 지정 템플릿을 만듭니다. 사용자 지정 템플릿에는 기본 권한, 서비스 주체, 사용자 지정 CI/CD 구성이 포함될 수 있습니다. Databricks 자산 번들 프로젝트 템플릿을 참조하세요.
- dbx에서 Databricks 자산 번들로 마이그레이션합니다. dbx에서 번들로 마이그레이션을 참조하세요.
- Databricks 자산 번들에 대해 릴리스된 최신 주요 기능을 확인하세요. Databricks 자산 번들 기능 릴리스 정보를 참조하세요.