에셋 번들 내부 구조

Databricks Lakehouse 입문

Gang Wang

Senior Data Scientist

번들 프로젝트 구조

$$

my_project/
|-- databricks.yml
|-- src/
|   |-- etl_pipeline.py
|   |-- data_quality.py
|-- resources/
|   |-- jobs/
|   |   |-- nightly_etl.yml
|   |-- pipelines/
|       |-- sales_pipeline.yml
|-- tests/
    |-- test_etl.py

$$

  • databricks.yml - 중앙 설정 파일
  • src/ - 노트북 및 코드
  • resources/ - 작업 및 파이프라인 정의
  • tests/ - 선택적 테스트 파일
Databricks Lakehouse 입문

databricks.yml 파일

bundle:
  name: sales_analytics

workspace:
  host: https://myworkspace.databricks.com

targets:
  dev:
    default: true
    workspace:
      root_path: /Users/me/dev
  production:
    workspace:
      root_path: /Shared/production
    permissions:
      - level: CAN_MANAGE
        group_name: data_engineers
Databricks Lakehouse 입문

리소스 정의

$$

레이어 구조: databricks.yml (최상위), 리소스 - 작업 - 파이프라인 - 대시보드, 코드 - 노트북 - Python 스크립트, 타깃 - dev - staging - production

$$

resources:
  jobs:
    nightly_etl:
      name: "Nightly ETL Pipeline"
      schedule:
        quartz_cron: "0 0 2 * * ?"
      tasks:
        - task_key: ingest
          notebook_task:
            notebook_path: src/etl.py
Databricks Lakehouse 입문

번들 CLI 명령어

$$

명령어 용도
bundle validate 설정 오류 검사
bundle deploy 타깃에 배포
bundle run 배포된 작업 실행
bundle destroy 배포된 리소스 제거

$$

# Validate before deploying
databricks bundle validate

# Deploy to production
databricks bundle deploy \
  --target production

# Trigger a run
databricks bundle run nightly_etl
Databricks Lakehouse 입문

배포 워크플로

순서도: 배포 워크플로

$$

  • 로컬 개발 - 코드 편집 및 설정 검증
  • 버전 관리 - Git에 변경 사항 커밋
  • CI/CD 자동화 - 스테이징 배포 및 테스트 실행
  • 프로덕션 승격 - 안정적으로 배포
Databricks Lakehouse 입문

요약

$$

  • databricks.yml은 프로젝트, 타깃, 리소스를 정의합니다
  • 리소스에는 작업, 파이프라인, 대시보드가 포함됩니다
  • 타깃은 환경(dev, staging, production)에 매핑됩니다
  • CLI 명령어: validate, deploy, run, destroy
Databricks Lakehouse 입문

연습해 봅시다!

Databricks Lakehouse 입문

Preparing Video For Download...