资产包内部

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 入门

Bundle CLI 命令

$$

Command Purpose
bundle validate 检查配置是否有误
bundle deploy 部署到目标环境
bundle run 触发已部署的作业
bundle destroy 移除已部署资源

$$

# 部署前先校验
databricks bundle validate

# 部署到生产环境
databricks bundle deploy \
  --target production

# 触发一次运行
databricks bundle run nightly_etl
Databricks Lakehouse 入门

部署工作流

流程图:部署工作流

$$

  • 本地开发——编辑代码并校验配置
  • 版本控制——将更改提交到 Git
  • CI/CD 自动化——部署到 staging 并运行测试
  • 生产发布——自信推进到生产
Databricks Lakehouse 入门

小结

$$

  • databricks.yml 定义项目、目标环境与资源
  • 资源包含作业、流水线和仪表板
  • 目标环境映射为 dev、staging、production
  • 常用 CLI:validatedeployrundestroy
Databricks Lakehouse 入门

让我们一起练习吧!

Databricks Lakehouse 入门

Preparing Video For Download...