メインコンテンツまでスキップ

構造化ストリーミングの概念

Apache Spark 構造化ストリーミングを使用すると、バッチ処理で使用するのと同じ Spark API でストリーミングアプリケーションとパイプラインを構築できます。Databricksでは、次の2つの処理モードをサポートしています。

  • リアルタイム モード (RTM) : 不正行為の検出や賭博のパーソナライゼーションなど、サブ秒の運用ワークロード用に設計されています。RTMは、レコードが到着したときに処理を行い、エンドツーエンドの遅延は5ミリ秒に抑えられます。リアルタイムモードの概念を参照してください。
  • マイクロバッチモード :分析パイプラインおよび抽出、変換、読み込み(ETL)ワークロード向けに設計されています。マイクロバッチモードはストリームを小さなバッチで処理し、コンピュートコストと秒または分単位で測定されるレイテンシー要件のバランスを取ります。マイクロバッチ処理がdefaultモードです。

両方のモードで同じ Structured Streaming APIs が使用されます。両方のモードでサポートされるクエリーについては、Triggerとコンピュートの構成でモードを切り替えることができます。リアルタイムモードの設定を参照してください。

Apache Spark™ Declarative Pipelines 上に構築されたLakeFlow Pipelinesでも、Structured Streaming がストリーミングを支えています。パイプラインはオーケストレーション、チェックポイント、復旧を管理し、SQLまたはPythonで変換を定義します。

手順を追ったチュートリアルについては、 「最初の構造化ストリーミングワークロードを実行する」を参照してください。

データストリームからの読み取り​

構造化ストリーミングを使用して、サポートされているデータソースからデータを段階的に取り込みます。

データ シンクへの書き込み​

構造化ストリーミングがターゲットシステムにデータを配信する方法を設定します。

    • チェックポイント
    • 処理状態を保存することで、耐障害性と厳密に1回限りの配信セマンティクスを実現します。
    • 出力モード
    • ステートフルなストリーミングクエリでは、追加、更新、完了の各モードから選択できます。
    • トリガー間隔
    • 処理要件に合わせて、遅延時間とコストのバランスを取るようにトリガー間隔を設定してください。

ステートフル処理とステートレス処理​

ステートレスクエリは、状態を保持せずに行を処理します。ステートフルクエリは、集計、結合、重複排除のための中間状態を保持します。

監視および管理​

クエリのパフォーマンスを追跡し、最適化を適用し、本番運用構造化ストリーミング ワークロードのデータ アクセスを管理します。