关于 databricks-spark-structured-streaming
databricks-spark-structured-streaming 是面向生产级 Spark Structured Streaming 管道的技能指南,适用于构建和维护流处理任务。它汇集 Kafka、流连接、多目标写入、状态管理及实时模式等实践。
主要功能
- 01Kafka 流处理模式
- 02实时模式配置与监控
- 03流-流及流-静态连接
- 04多目标写入与 MERGE 优化
- 05检查点和状态操作配置
- 06生产环境检查清单
适用场景
- 01将 Kafka 数据流写入 Delta
- 02以低延迟处理实时事件
- 03连接流数据与静态数据
- 04将流式记录写入多个表
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ databricks/ databricks-agent-skills --skill databricks-spark-structured-streaming安装后在 Claude Code 中输入/databricks-spark-structured-streaming确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/databricks.svgreferences/checkpoint-best-practices.mdkafka-streaming.mdlakebase-sink-python.mdmerge-operations.mdmulti-sink-writes.mdreal-time-mode.mdstateful-operations.mdstream-static-joins.mdstream-stream-joins.mdstreaming-best-practices.mdtrigger-and-cost-optimization.md详细介绍
Spark Structured Streaming
使用 Spark Structured Streaming 构建可用于生产环境的流式处理管道。此技能提供导航,帮助你查找详细模式和最佳实践。
快速入门
from pyspark.sql.functions import col, from_json
# Basic Kafka to Delta streaming
df = (spark
.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "broker:9092")
.option("subscribe", "topic")
.load()
.select(from_json(col("value").cast("string"), schema).alias("data"))
.select("data.*")
)
df.writeStream \
.format("delta") \
.outputMode("append") \
.option("checkpointLocation", "/Volumes/catalog/checkpoints/stream") \
.trigger(processingTime="30 seconds") \
.start("/delta/target_table")
核心模式
| 模式 | 描述 | 参考 |
|---|---|---|
| Kafka 流式处理 | Kafka 到 Delta、Kafka 到 Kafka、实时模式 | 参见 references/kafka-streaming.md |
| 实时模式 (RTM) | 亚秒级端到端延迟——集群设置、槽位计算、支持的操作(包括 DBR 18+ 上的流-流内连接)、transformWithState、可观测性、错误类别、交付语义 | 参见 references/real-time-mode.md |
| Lakebase 接收器 | 将流式记录写入 Lakebase Postgres,并执行事务性更新插入。原生 format("postgresql") 接收器(DBR 18.3+),以及作为后备方案的手动 foreach 接收器 | 参见 references/lakebase-sink-python.md |
| 流连接 | 流-流连接、流-静态连接 | 参见 references/stream-stream-joins.md、references/stream-static-joins.md |
| 多接收器写入 | 写入多个表、并行合并 | 参见 references/multi-sink-writes.md |
| 合并操作 | MERGE 性能、并行合并、优化 | 参见 references/merge-operations.md |
配置
| 主题 | 描述 | 参考 |
|---|---|---|
| 检查点 | 检查点管理和最佳实践 | 参见 references/checkpoint-best-practices.md |
| 有状态操作 | 水位线、状态存储、RocksDB 配置 | 参见 references/stateful-operations.md |
| 触发器与成本 | 触发器选择、成本优化、RTM | 参见 references/trigger-and-cost-optimization.md |
最佳实践
| 主题 | 描述 | 参考 |
|---|---|---|
| 生产环境检查清单 | 全面的最佳实践 | 参见 references/streaming-best-practices.md |
生产环境检查清单
- 检查点位置具有持久性(UC 卷,而不是 DBFS)
- 每个流使用唯一的检查点
- 固定大小的集群(流式处理不使用自动扩缩)
- 已配置监控(输入速率、延迟、批次持续时间)
- 已验证恰好一次(txnVersion/txnAppId)
- 已为有状态操作配置水位线
- 流-静态连接使用左连接(而不是内连接)
评论
支持 Markdown