Databricks でのストリーミング

Databricks を使用すると、ほぼリアルタイムのデータの取り込み、処理、機械学習、AI によるデータのストリーミングを行うことができます。

Databricks は、ストリーミングおよびインクリメンタル処理のための最適化を多数提供します。ストリーミング、インクリメンタルなデータ処理、または ETL タスクの実施には、Databricks は Delta Live Tables を推奨しています。「 Delta Live Tables とは」を参照してください。

Databricks 上のインクリメンタルおよびストリーミングのワークロードの多くは、Delta Live Tables や Auto Loader などの構造化ストリーミングによって強化されています。「Auto Loader とは」を参照してください。

Delta Lake と構造化ストリーミングは緊密に統合されており、Databricks レイクハウスでの増分処理を強化します。 「 Delta テーブル ストリーミングの読み取りと書き込み」を参照してください。

Databricks プラットフォームでのストリーミング ソリューションの構築の詳細については、 データ ストリーミング製品ページを参照してください。

Databricks には、Avro、プロトコル バッファー、JSON データ ペイロードに含まれる半構造化データ フィールドを操作するための特定の機能があります。 詳細については、以下を参照してください。

構造化ストリーミングとは

Apache Spark Structured Streaming は、エンドツーエンドの耐障害性を提供し、使い慣れた Spark API を用いた正確な1回処理を保証する、ほぼリアルタイムの処理エンジンです。構造化ストリーミングでは、静的データに対するバッチ計算と同じように、ストリーミングデータに対する計算を表現することができます。この構造化ストリーミングエンジンは、計算をインクリメンタルに実行し、到着するストリーミングデータの結果を継続的に更新します。

構造化ストリーミングを初めて使用する場合は、「構造化ストリーミングの初回ワークロードを実行する」を参照してください。

構造化ストリーミングを Unity Catalogで使用する方法については、「Unity Catalog を構造化ストリーミングで使用する」を参照してください。

Databricks でサポートされているストリーミングソースとシンクの種類

Databricks では、Auto Loader を使用して、サポートされている種類のファイルをクラウドオブジェクトストレージから Delta Lake に取り込むことを推奨しています。ETL パイプラインの場合、Databricks では、Delta Live Tables(Delta のテーブルと構造化ストリーミングを使用)の使用を推奨しています。Delta Lake のテーブル間でストリーミングすることにより、インクリメンタルな ETL ワークロードを構成することもできます。

Structured Streaming は、Delta Lake と Auto Loaderに加えて、Apache Kafka などの メッセージング サービス に接続できます。

foreachBatch を使用して、任意のデータシンクに書き込むことも可能です。

追加のリソース

Apache Sparkの提供する「構造化ストリーミングプログラミングガイド」には、構造化ストリーミングに関する詳細情報が掲載されています。

構造化ストリーミングに関する参考情報については、Databricks では Apache Spark API による次のリファレンスを推奨します。