BrainBank
AI 课堂/技能DataBricks

Databricks 快速参考与速查表

2026/7/30 00:07:46

AI 翻译于 2026/7/30 00:11:46 · 使用 Qwen3.6 35B (fast, default)

#skill#databricks#delta-lake#spark#lakehouse#data-analytics#workspace-basics

一份简明的 Databricks 平台指南,涵盖核心概念(湖仓一体、Delta Lake)、工作区基础(Notebook、集群、作业),以及适用于日常数据工程与分析任务的 Spark SQL / DBFS / Delta 关键操作。

Databricks 快速参考与速查表

入门指南

9f622ca2-a8e8-4aeb-a9b0-1390d3dfceac.png

集群与计算配置

| 集群类型 | 选择集群模式(单节点、标准高吞吐量、高并发) | | Worker Nodes | 工作节点数量;自动扩缩容可控制最小/最大工作节点数 | | Runtime Version | 建议使用支持 Photon 的运行时以提升性能 | | 初始化脚本 | 节点启动时运行的 Python 脚本 |

集群配置基础

  • 集群模式:根据工作负载类型进行选择(开发、生产、机器学习)
  • Worker Nodes:在配置的上下限之间自动扩缩容,以实现成本效益
  • Photon:启用以加速大规模查询
  • Job Clusters:最适合一次性或计划任务工作负载 —— 无初始预付费成本

Databricks SQL 与数据中心仓库服务

-- Create a table in Unity Catalog
CREATE TABLE catalog.schema.table_name (
    id BIGINT,
    name STRING,
    value DOUBLE
);

-- Query via Serverless SQL Warehouse
SELECT * FROM catalog.schema.table_name LIMIT 10;

-- Change warehouse / query context
ALTER WAREHOUSE warehouse_name SET AUTOSTOP = 30 MINUTE;

关键要点:Databricks SQL 仓库服务(标准版或无服务器版)用于处理商业智能/SQL。


Delta Lake 核心功能

| 读取表名 | spark.read.format("delta").load("/path/to/table") | | 写入 (overwrite) | df.write.format("delta").mode("overwrite").save("/path/to/table") | | **OPTIMIZE & ZORDER** | OPTIMIZE table_name; ZORDER BY(col1, col2); |

Delta 时间旅行

SELECT * FROM catalog.schema.table_name TIMESTAMP AS OF '2025-08-01';

ZORDER BY 将相关信息聚合在相同的文件集中,大幅加快过滤查询的速度。


Spark SQL Cheat Sheet

DataFrame 创建与常见模式

df = spark.read.format("csv").option("header", "true").load("/path/to/file.csv")
df = spark.read.json("/path/to/.parquet()
df = spark.read.parquet("/path/to/data/")

# SQL-Style Querying
spark.table(("catalog.schema.table_name"))
spark.sql("SELECT catalog.schema.table_name.createOrReplaceTempView("t")
results = spark.sql("SELECT col1, COUNT(*) FROM t GROUP BY col1")

常见 Spark Transformations

| select | 选择/重命名列 | df.select("col1", "col2") | | filter | 过滤行 | df.filter(df.col > 10) | | groupBy | 聚合分组 | df.groupBy("region").count() | | join | 组合 DataFrames | df1.join(df2, "id") | | orderBy | 排序结果 | df.orderBy(desc("date")) | | withColumn | 添加/修改列 | df.withColumn("x2", df.x * 2) |### 常用 Spark 聚合

from pyspark.sql.functions import col, avg, count, sum, max, min, when

df.agg(
    avg("price").alias("avg_price"),
    count("*").alias("total_records"),
    sum("quantity").alias("total_qty"),
    max("date").alias("latest_day")
)

-- 条件聚合(对应 SQL 的 CASE WHEN)
df.withColumn("tier", when(df.amount > 1000, "high").otherwise("low"))

Unity Catalog (UC) 导航

对象语法/模式
Metastorespark.conf.set("spark.sql.catalog.spark_catalog", "com.databricks.backend.catatalogs.catalyst.CatalogHandler")
Schema / DatabaseUSE CATALOG my_catalog; USE SCHEMA my_schema;
Tablecatalog.schema.table_name
ViewCREATE VIEW catalog.schema.view AS SELECT ...

Unity Catalog 权限 (GRANT/REVOKE)

-- Grant table read access
GRANT SELECT ON TABLE catalog.schema.table TO role_name;

-- Grant schema usage
GRANT USE SCHEMA ON SCHEMA catalog.schema TO role_name;

-- Revoke
REVOKE ALL ON TABLE catalog.name FROM role_name;

Unity Catalog 提供集中化治理。Access control, data discovery, audit logs.


Notebook & Dev Tip

FeatureShortcut / Tip
Run cellShift + Enter
Auto-completeCtrl + Space (or Cmd + Space on Mac)
SQL cellStart with %sql magic.
Python cellpython
Multi-languageUse cell headers to select language per cell

Cell Magics

%s -- switch cell language to SQL
%python -- switch to Python  
%s -- shell commands
%md -- Markdown rendering
%fs -- Databricks File System operation

Delta Live Tables (DLT)

@dlt.Table def data(): return ( spark.readStream.format("delta").load("/path/to/source") .filter(col("status") == "active") )

FeatureShortcut / Tip
Run cellShift + Enter
Auto-completeCtrl + Space (or Cmd + Space on Mac)
SQL cellStart with %sql magic
Python cellDefault; start with %python explicitly if needed
Multi-languageUse cell headers to select language per cell

Cell. Magics

%s -- switch cell language to SQL
%python -- switch to Python  
%s -- shell commands
%md -- Markdown rendering
%fs -- Databricks File System operation

Delta Live Tables (DLT)

@dlt.Table def data(): return ( spark.readStream.format("delta").load("/path/to/source") .filter(col("status") == "active") )```python

Listing files

dbutils.fs.ls("/path/to/dir")

Copying

dbutils.fs.cp("file:/local/path", "/dbfs/mnt/gcs/bucket/folder")

Creating directories

dbutils.fs.mkdirs("/dbfs/tmp/new_folder")

Downloading from external storage (mount example)

dbutils.fs.mount( source="gs://bucket-name/path", mount_point="/mnt/gs/bucket-name", extra_configs={"fs.gs.auth.service.account.json.keyfile": "…"} )

---
## 关键要点
- **集群模式**:开发环境请使用标准型集群,BI/共享 SQL 数据仓库请使用高并发型集群。尽可能使用搭载 Photon 加速的运行环境。
- **Delta Lake**是底层存储引擎;善用**时间旅行(Time Travel)**特性以及 **OPTIMIZE/ZORDER** 命令来提升性能。
- **Unity Catalog**实现集中化治理管控(metastore → catalog → schema → table)。
- **Notebook 单元格**支持通过 `%sql`、`%python` 等指令进行多语言切换——按需以内联形式使用即可。
- **DLT 与工作流**可将 Notebook 转化为生产就绪的定时管道,并具备清晰的数据血缘关系与 SLA。

学习地图

Databricks 学习路线图

第一阶段 — 基础

  • 理解湖仓一体(Lakehouse)架构概念
  • 探索 Delta Lake 基础知识(ACID 事务、时间旅行、模式执行)
  • 配置 Databricks 工作区(社区版或云试用版)

第二阶段 — 工作区导航

  • 创建并运行 notebooks(pySpark / SQL / Python / Scala)
  • 配置和管理计算集群(无服务器与全功能、作业集群)
  • 掌握 DBFS(Databricks 文件系统)基础操作

第三阶段 — Spark & SQL 操作

  • 使用 pySpark 编写 Spark DataFrame 转换逻辑
  • 运行 Delta Lake 命令(delta, create table, MERGE INTO
  • 使用 Databricks SQL Warehouse 进行仪表板展示和即席查询

第四阶段 — 自动化与治理

  • 调度作业(基于 notebooks 和任务的流程)
  • 启用 Unity Catalog 以实现数据治理和访问控制
  • 使用 Delta Live Tables (DLT) 自动化 ELT 流水线

动手实践——分步指南

  1. 注册 Databricks 社区版或免费云试用版。
  2. 登录工作区并创建一个新的笔记本——选择 pySpark 作为编程语言。
  3. 从笔记本创建一个通用集群,选择运行时版本“Databricks Runtime 14.x”(或最新的 ML/Standard 版),然后将其附加。
  4. 将 CSV 文件上传到 DBFS:直接拖拽到侧边栏,或运行以下命令:dbutils.fs.put("/FileStore/my_data.csv", ...)
  5. 将数据加载为 DataFrame:df = spark.read.csv("/FileStore/my_data.csv", header=True, inferSchema=True)。使用 display(df.head(10)) 显示结果。
  6. 将其注册为 Delta 表:df.write.format("delta").mode("overwrite").saveAsTable("my_customers)`。
  7. 在另一个单元格中使用 Spark SQL 查询该表:
    %sql
    SELECT * FROM my_customers WHERE age > 25 ORDER BY revenue DESC LIMIT 10;
    
  8. 通过修改数据并查询历史版本来测试时间旅行功能:SELECT * FROM my_customers FOR SYSTEM_TIME AS OF timestamp('2024,01')
  9. 创建 MERGE(Upsert)操作:运行 Delta 的 MERGE INTO 语句,根据匹配条件更新或插入行。
  10. 将笔记本配置为 Job 调度:进入 Jobs > New Job,将触发器(Trigger)设置为“Schedule”(例如每天凌晨 2 点),并将您的笔记本添加为任务节点。
  11. 创建 SQL Warehouse——使用 Databricks SQL Editor 连接,并基于查询结果构建一个简单的数据看板。

三大推荐资源

  1. 1
    Databricks Docs — Delta Lake Quickstart

    Official Delta Lake documentation covering table creation, merges, time travel, and best-practice patterns.

    https://docs.databricks.com/en/delta-lake/index.html

  2. 2
    Databricks Academy — Getting Started with Databricks Community Edition

    Free, self-paced training that walks you through workspaces, notebooks, clusters, and hands-on labs.

    https://www.databricks.com/learn/training/community-edition

  3. 3
    Apache Spark SQL Language Reference

    The canonical reference for Spark SQL syntax, DataFrame APIs, and built-in functions (runs identically on Databricks).

    https://spark.apache.org/docs/latest/sql-programming-guide.html

链接由 AI 推荐——使用前建议快速核实。