パイプラインとは?
パイプラインは、LakeflowにおけるApache Spark™宣言型パイプライン (SDP) の開発および実行の主要な単位です。パイプラインは、ソースコードファイルと構成の集合体です。ソースファイルでは、データセット(ストリーミングテーブル、マテリアライズドビュー、およびビュー)と、それらを生成するクエリーおよびフローが宣言されます。構成では、パイプラインのラン方法とデータの保存場所が指定されます。
パイプラインは、定義するフロー、ストリーミングテーブル、マテリアライズドビュー、およびシンクのコンテナです。パイプラインの実行中に、これらのオブジェクト間の依存関係が分析され、実行順序と並列化が自動的にオーケストレーションされます。パイプラインが含むオブジェクトの詳細については、Lakeflow pipelinesとは何ですか?を参照してください。LakeflowパイプラインとApache Spark™宣言型パイプラインの比較については、Apache Spark宣言型パイプラインを参照してください。
パイプラインのソースコード
パイプライン ソースコード は Python または SQL で記述されています。1つのパイプラインはPythonとSQLのソースファイルを混合させることができますが、各ファイルには1つの言語しか含めることができません。パイプラインは、ソースファイル全体でデータセットの依存関係を分析するため、ソースコードを任意の順序で構成できます。
言語固有の開発ガイダンスについては、Python を使用したパイプライン コードの開発 と SQL を使用したLakeFlow Pipelines コードの開発を参照してください。
パイプライングラフ
パイプラインは、データセット間の依存関係を自動的に検出し、それらを有向非巡回グラフ (DAG) として整理します。グラフが評価順序を決定します:上流のデータセットは下流のデータセットより前にコンピュートされます。Lakeflow Pipelines エディタでパイプラインのグラフを表示して操作できます。
パイプラインの更新
パイプライン更新は、以下の方法で各データセットの現在の状態をコンピュートします。
- 正しい構成でクラスターを開始します。
- ソースファイルを分析し、依存関係グラフを構築しています。
- 依存関係の順序で、各データセットを計算または増分更新します。
パイプラインは2つのモードで実行されます。
- トリガー済み : パイプラインは1回実行され、すべてのデータセットが最新の状態になると停止します。
- 連続 :パイプラインは無期限に実行され、到着した新規データを処理します。
エディターからインタラクティブにトリガーする更新は、クラスターを再利用し、自動再試行を無効にすることで、高速な反復を最適化します。「実行動作の更新」を参照してください。
パイプラインタイプ
ジョブ & パイプライン リストには、LakeFlow Pipelinesで作成されたパイプラインだけでなく、それ以上のものが含まれています。Databricks はさまざまな種類のパイプラインを実行しており、 ジョブ & パイプライン リストとパイプラインモニタリングページでは、それぞれに種類がラベル付けされており、どれがどれであるかを判別できます。次の表では、各パイプラインタイプを、イベント Logsに記録されている pipeline_type の値にマッピングしています。
ジョブとパイプライン と入力してください |
| 説明 |
|---|---|---|
ETL |
| LakeFlow Pipelinesです。See Spark宣言型パイプライン. |
データ取り込み |
| LakeFlow Connect で作成された、管理の取り込みパイプラインです。Lakeflow Connectのマネージド コネクタを参照してください。 |
MV/ST |
| スタンドアロンのパイプラインです。「スタンドアロン パイプライン」を参照してください。 |
スタンドアロン パイプライン
Lakeflow Pipelines の外部で、ストリーミングテーブルとマテリアライズドビューを スタンドアロンパイプライン として作成および管理できます。Databricks SQL またはPython を使用して、スタンドアロンのストリーミングテーブルとマテリアライズドビューを作成および更新できます。これらは同じDatabricks インフラストラクチャ上で実行され、LakeFlow Pipelinesの場合と同じ処理セマンティクスを持ちます。スタンドアロンのストリーミングテーブルまたはマテリアライズドビューを定義すると、フローはストリーミングテーブルまたはマテリアライズドビューの定義の一部として暗黙的に定義されます。
詳細については、「スタンドアロンのパイプライン」を参照してください。
Lakeflow Pipelines エディター
The Lakeflow Pipelines Editor は、パイプライン開発用に構築された IDE です。提供しています。
- PythonおよびSQLソースファイル用のマルチファイルコードエディタ
- ファイルやフォルダーを整理するためのパイプラインアセットブラウザー
- データセットの依存関係と状態を示すインタラクティブなパイプライングラフ
- ストリーミングテーブルとマテリアライズドビューのデータプレビュー
- 最新の実行結果を表示する実行知見と問題ペイン
- パイプライン全体を実行せずに個別のファイルまたはテーブルを更新する選択実行
エディターはDatabricksプラットフォームと統合されており、Gitフォルダーを介したバージョン管理をサポートしています。ステップバイステップのガイダンスについては、「Lakeflow Pipelines EditorによるETLパイプラインの開発とデバッグ」を参照してください。