mcpField
D
databricks-spark-structured-streaming

databricks-spark-structured-streaming

github.com/databricksデータ・データベース373311 回インストール今日更新
リポジトリ

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. 01Kafkaデータを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)1 秒未満の E2E レイテンシ — クラスターのセットアップ、スロット計算、サポート対象の操作(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 を参照
トリガーとコストトリガーの選択、コストの最適化、RTMreferences/trigger-and-cost-optimization.md を参照

ベストプラクティス

トピック説明参照
本番環境チェックリスト包括的なベストプラクティスreferences/streaming-best-practices.md を参照

本番環境チェックリスト

  • チェックポイントの場所は永続的です(DBFS ではなく UC ボリューム)
  • ストリームごとに一意のチェックポイントを使用
  • 固定サイズのクラスターを使用(ストリーミングではオートスケーリングを使用しない)
  • モニタリングを設定済み(入力レート、遅延、バッチ継続時間)
  • Exactly-once を検証済み(txnVersion/txnAppId)
  • ステートフル操作用のウォーターマークを設定済み
  • ストリームと静的データの結合には左外部結合を使用(内部結合ではない)

コメント