mcpField
D
databricks-spark-structured-streaming

databricks-spark-structured-streaming

github.com/databricks数据与数据库373311 次安装1 天前更新
代码仓库

关于 databricks-spark-structured-streaming

databricks-spark-structured-streaming 是面向生产级 Spark Structured Streaming 管道的技能指南,适用于构建和维护流处理任务。它汇集 Kafka、流连接、多目标写入、状态管理及实时模式等实践。

主要功能

  1. 01Kafka 流处理模式
  2. 02实时模式配置与监控
  3. 03流-流及流-静态连接
  4. 04多目标写入与 MERGE 优化
  5. 05检查点和状态操作配置
  6. 06生产环境检查清单

适用场景

  1. 01将 Kafka 数据流写入 Delta
  2. 02以低延迟处理实时事件
  3. 03连接流数据与静态数据
  4. 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.yaml
assets/
databricks.svg
references/
checkpoint-best-practices.md
kafka-streaming.md
lakebase-sink-python.md
merge-operations.md
multi-sink-writes.md
real-time-mode.md
stateful-operations.md
stream-static-joins.md
stream-stream-joins.md
streaming-best-practices.md
trigger-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