アセットバンドルの内部構造

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(最上位)、Resources - Jobs - Pipelines - Dashboards、Code - Notebooks - Python scripts、Targets - 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 コマンド:validatedeployrundestroy
Databricks Lakehouse 入門

練習しましょう!

Databricks Lakehouse 入門

Preparing Video For Download...