資產套件內部

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/ - 「作業與 pipeline 定義」
  • 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 入門

Bundle CLI 指令

$$

指令 目的
bundle validate 檢查設定是否有誤
bundle deploy 部署到目標環境
bundle run 觸發已部署的作業
bundle destroy 移除已部署的資源

$$

# 部署前先驗證
databricks bundle validate

# 部署到 production
databricks bundle deploy \
  --target production

# 觸發執行
databricks bundle run nightly_etl
Databricks Lakehouse 入門

部署流程

流程圖:部署流程

$$

  • 「本機開發」-編輯程式碼並驗證設定
  • 「版本控制」-將變更 commit 到 Git
  • 「CI/CD 自動化」-部署到 staging 並執行測試
  • 「推升到正式環境」-有信心地部署
Databricks Lakehouse 入門

重點整理

$$

  • databricks.yml 定義你的專案、目標與資源
  • 「資源」包含作業、pipelines 與儀表板
  • 「目標」對應環境(dev、staging、production)
  • CLI 指令:validatedeployrundestroy
Databricks Lakehouse 入門

一起來練習吧!

Databricks Lakehouse 入門

Preparing Video For Download...