Lakeflow Pipelines Python 言語リファレンス
LakeFlow PipelinesのPythonインターフェイスは、dpとしてインポートされるpyspark.pipelinesモジュールで定義されています。
- 概念的な情報とパイプラインでのPython使用の概要については、 Pythonを使用したパイプライン コードの開発」を参照してください。
- SQLリファレンスについては、「パイプラインSQL言語リファレンス」を参照してください。
- Auto Loader の設定に関する詳細については、 「Auto Loader とは」を参照してください。
pipelinesモジュールの概要
LakeFlow PipelinesのPython関数は、dpとしてインポートされるpyspark.pipelinesモジュールで定義されています。Python API を使用して実装されたパイプラインでは、このモジュールをインポートする必要があります。
from pyspark import pipelines as dp
パイプライン モジュールは、パイプラインのコンテキストでのみ使用できます。 パイプラインの外部で実行される Python では使用できません。パイプライン コードの編集の詳細については、 「 Lakeflow Pipelines Editor を使用したETLパイプラインの開発とデバッグ」を参照してください。
Apache Spark™パイプライン
Apache Spark には Spark 4.1 以降の 宣言型パイプライン が含まれており、 pyspark.pipelinesモジュールを通じて利用できます。Databricks Runtime 、追加のAPIsと統合を使用してこれらのオープン ソース機能を拡張し、管理された本番運用で使用できるようにします。
オープンソースのpipelinesモジュールで記述されたコードは、変更せずに Databricks で実行されます。次の機能は Apache Spark の一部ではありません。
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)
pipelinesモジュールは以前、Databricks ではdltと呼ばれていました。詳細およびApache Sparkとの違いについては、 「 @dltに何が起こったか?」を参照してください。
データセット定義のための関数
パイプラインは、マテリアライズドビューやストリーミングテーブルなどのデータセットを定義するためにPythonデコレーターを使用します。 データセットを定義する関数を参照してください。
APIリファレンス
- append_flow
- 自動cdcフローを作成する
- スナップショットフローから自動 CDC を作成する
- シンクを作成する
- ストリーミングテーブルの作成
- エクスペクテーション
- foreach_batch_sink
- マテリアライズドビュー
- テーブル
- 一時ビュー
- 更新フロー
Pythonパイプラインのコーディング要件
The following are important requirements when you implement LakeFlow PipelinesのPythonインターフェースを使用してパイプラインを実装する際の重要な要件は以下のとおりです:
- LakeFlow Pipelinesは、計画中およびパイプラインの実行中に、パイプラインを定義するコードを複数回評価します。データセットを定義するPython関数には、テーブルまたはビューの定義に必要なコードのみを含める必要があります。データセット定義に含まれる任意のPythonロジックは、予期しない動作につながる可能性があります。
- データセット定義にカスタムモニタリングロジックを実装しようとしないでください。 「イベント フックを使用したパイプラインのカスタム モニタリングの定義」を参照してください。
- データセットを定義するために使用される関数は、Spark DataFrame を返す必要があります。返される DataFrame に関連しないロジックをデータセット定義に含めないでください。
- パイプライン データセット コードの一部として、ファイルやテーブルに保存または書き込むメソッドを使用しないでください。
パイプライン コードで使用すべきでない Apache Spark 操作の例:
collect()count()toPandas()save()saveAsTable()start()toTable()
@dltに何が起こったのでしょうか?
以前は、Databricks はパイプライン機能をサポートするためにdltモジュールを使用していました。dltモジュールはpyspark.pipelinesモジュールに置き換えられました。引き続きdlt使用することもできますが、Databricks ではpipelinesの使用を推奨しています。
DLT、LakeFlow Pipelines、および Apache Spark 宣言型パイプラインの違い
次の表に、DLT、LakeFlow Pipelines、およびApache Spark宣言型パイプラインの構文と機能の違いを示します。
LakeFlow PipelinesがApache Spark宣言型パイプラインと何を共有し、追加しているかの機能レベルの比較については、Apache Spark宣言型パイプラインを参照してください。
SDPプロジェクト仕様へのパイプライン構成のプロパティごとのマッピングについては、パイプラインプロパティリファレンスを参照してください。
Databricksドキュメントでは、Databricks製品は LakeFlow Pipelines と呼ばれ、それが拡張するオープンソースフレームワークは Apache Spark™ Declarative Pipelines ( SDP )です。両者は相互運用可能ですが、機能が異なります。たとえば、AUTO CDC APIsはLakeFlow Pipelinesでのみ利用できます。
領域 | DLT構文 | SDP 構文 ( LakeFlowおよびApache 、該当する場合) | Apache Sparkで利用可能 |
|---|---|---|---|
輸入品 |
|
| はい |
ストリーミングテーブル |
|
| はい |
マテリアライズドビュー |
|
| はい |
ビュー |
|
| はい |
フローの追加 |
|
| はい |
フローを更新する | 利用不可 |
| No |
SQL – ストリーミング |
|
| はい |
SQL – マテリアライズド |
|
| はい |
SQL – フロー |
|
| はい |
イベントログ |
|
| No |
変更を適用 (CDC) |
|
| No |
エクスペクテーション |
|
| No |
連続モード | 連続トリガーを使用したパイプライン構成 | (同じ) | No |
シンク |
|
| はい |
ForEachBatch シンク | 利用不可 |
| No |