この記事では、Lakeflow Spark 宣言型パイプラインのパイプライン JSON 設定の仕様とテーブル プロパティのリファレンスを提供します。 これらのさまざまなプロパティと構成の使用について詳しくは、次の記事を参照してください。
パイプラインの構成
idタイプ:
stringこのパイプラインのグローバル一意識別子。 識別子はシステムによって割り当てられるので、変更することはできません。
nameタイプ:
stringこのパイプラインのユーザー フレンドリ名。 この名前は、UI でパイプライン ジョブを識別するために使用できます。
configurationタイプ:
objectパイプラインを実行するクラスターの Spark 構成に追加する省略可能な設定のリスト。 これらの設定は、Lakeflow Spark 宣言パイプライン ランタイムによって読み取られ、Spark 構成を介してパイプライン クエリで使用できます。
要素は
key:valueペアとして書式設定する必要があります。librariesタイプ:
array of objectsパイプライン コードと必要な成果物を含むコード ファイルの配列。
clustersタイプ:
array of objectsパイプラインを実行するクラスターの仕様の配列。
これが指定されていない場合、パイプラインはパイプラインの既定のクラスター構成を自動的に選択します。
developmentタイプ:
booleanパイプラインを
developmentモードで実行するか、productionモードで実行するかを示すフラグ。既定値は
truenotificationsタイプ:
array of objectsパイプラインが更新を完了したとき、再試行可能なエラーで失敗したとき、再試行不可能なエラーで失敗したとき、またはフローが失敗したときの、メール通知に関する指定のオプションの配列。
continuousタイプ:
booleanパイプラインを継続的に実行するかどうかを示すフラグ。
既定値は
falseです。catalogタイプ:
stringパイプラインの既定のカタログの名前。パイプラインのすべてのデータセットとメタデータが発行されます。 この値を設定すると、パイプラインの Unity カタログが有効になります。
設定されていない場合、パイプラインは、
storageで指定された場所を使用してレガシ Hive メタストアに公開します。レガシ発行モードでは、現在のパイプラインのすべてのデータセットが発行されるターゲット スキーマを含むカタログを指定します。 LIVE スキーマ (レガシー)を参照してください。
schemaタイプ:
stringパイプラインの既定のスキーマの名前。パイプラインのすべてのデータセットとメタデータが既定で発行されます。 「ターゲット カタログとスキーマのを設定する」を参照してください。
target(レガシ)タイプ:
string現在のパイプラインで定義されているすべてのデータセットが発行されるターゲット スキーマの名前。
targetではなくschemaを設定すると、従来の発行モードを使用するようにパイプラインが構成されます。 LIVE スキーマ (レガシー)を参照してください。storage(レガシ)タイプ:
stringパイプラインの実行に必要な出力データとメタデータが格納される DBFS またはクラウド ストレージ上の場所。 テーブルとメタデータは、この場所のサブディレクトリに格納されます。
storage設定を指定しない場合、システムは既定でdbfs:/pipelines/内の場所に設定されます。パイプラインの作成後に
storage設定を変更することはできません。channelタイプ:
string使用する Lakeflow Spark 宣言パイプライン ランタイムのバージョン。 サポートされる値は
- ランタイム バージョンの今後の変更でパイプラインをテストする
preview -
currentから現在のランタイム バージョンの更新。
channelフィールドは省略可能です。 既定値はcurrentです。 Databricks では、運用環境のワークロードに、現在のランタイム バージョンを使用することをお勧めします。- ランタイム バージョンの今後の変更でパイプラインをテストする
edition「
string」と入力しますパイプラインを実行するための「Lakeflow Spark Declarative Pipelines」製品エディション。 この設定を使用すると、パイプラインの要件に基づいて、最適な製品エディションを選択できます。
-
CORE: ストリーミング取り込みワークロードを実行します。 -
PROストリーミングのインゲストおよび変更データキャプチャ (CDC) のワークロードを実行するために使用します。 -
ADVANCEDストリーミングインジェストワークロード、CDCワークロード、およびデータ品質制約を適用する必要があるワークロードを実行する場合。
editionフィールドは省略可能です。 既定値はADVANCEDです。-
photonタイプ:
booleanパイプラインを実行するために「Photon とは」を使うかどうかを示すフラグ。 Photon は、Azure Databricks の高性能 Spark エンジンです。 Photon が有効なパイプラインと Photon が有効でないパイプラインでは、請求される料金が異なります。
photonフィールドは省略可能です。 既定値はfalseです。pipelines.maxFlowRetryAttemptsタイプ:
intパイプラインの更新中に再試行可能なエラーが発生した場合、これはパイプラインの更新に失敗するまでにフローを再試行する最大回数です
既定値: 2 回の再試行。 再試行可能なエラーが発生すると、Lakeflow Spark 宣言パイプライン ランタイムは、元の試行を含め、フローの実行を 3 回試行します。
pipelines.numUpdateRetryAttemptsタイプ:
int更新中に再試行可能なエラーが発生した場合、これは更新を完全に失敗させる前に更新を再試行する最大回数です。 再試行は完全更新として実行されます。
このパラメーターは、運用モードで実行されているパイプラインにのみ適用されます。 パイプラインが開発モードで実行されている場合、または
Validate更新を実行する場合、再試行は試行されません。既定値は
- トリガーされたパイプラインの場合は 5 つ。
- 連続パイプラインの場合は無制限。
パイプライン テーブルのプロパティ
Delta Lake でサポートされているテーブルのプロパティに加えて、次のテーブルのプロパティを設定できます。
pipelines.autoOptimize.zOrderCols既定値: なし
このテーブルに Z オーダーを指定するために使用する、列名のコンマ区切りの一覧が含まれる文字列 (省略可能)。 たとえば、
pipelines.autoOptimize.zOrderCols = "year,month"のように指定します。pipelines.reset.allowed既定値:
trueこのテーブルの完全な更新を許可するかどうかを制御します。
pipelines.autoOptimize.managed既定値:
trueこのテーブルの自動的にスケジュールされる最適化を有効または無効にします。
予測最適化によって管理されるパイプラインの場合、このプロパティは使用されません。
パイプライン トリガーの間隔
パイプライン全体またはデータセット宣言の一部として、パイプライン トリガー間隔を指定できます。 継続的パイプラインのトリガー間隔の設定を参照してください。
pipelines.trigger.interval既定値は、フローの種類に基づいています。
- ストリーミング クエリの場合は 5 秒。
- すべての入力データがデルタ ソースからの場合、完全なクエリに対して 1 分。
- 一部のデータソースが非デルタフォーマットである場合、クエリの完了に10分かかることがある。
値は数値と時間単位の組み合わせです。 有効な時間単位は次のとおりです。
-
second、seconds -
minute、minutes -
hour、hours -
day、days
値を定義するときには、単数形または複数形の単位を使用できます。次に例を示します。
{"pipelines.trigger.interval" : "1 hour"}{"pipelines.trigger.interval" : "10 seconds"}{"pipelines.trigger.interval" : "30 second"}{"pipelines.trigger.interval" : "1 minute"}{"pipelines.trigger.interval" : "10 minutes"}{"pipelines.trigger.interval" : "10 minute"}
ユーザーが設定できないクラスター属性
Lakeflow Spark 宣言パイプライン (SDP) はクラスターのライフサイクルを管理するため、多くのクラスター設定はシステムによって設定され、パイプライン構成またはパイプラインで使用されるクラスター ポリシーでは、ユーザーが手動で構成することはできません。 次の表は、このような設定の一覧と、手動で設定できない理由です。
cluster_nameSDP は、パイプライン更新の実行に使用されるクラスターの名前を設定します。 これらの名前はオーバーライドできません。
data_security_modeaccess_modeこれらの値はシステムによって自動的に設定されます。
spark_versionSDP クラスターは、最新の機能を含むように継続的に更新される Databricks Runtime のカスタム バージョンで実行されます。 Spark のバージョンは Databricks Runtime のバージョンにバンドルされており、オーバーライドできません。
autotermination_minutesSDP はクラスターの自動終了と再利用ロジックを管理するため、クラスターの自動終了時間をオーバーライドすることはできません。
runtime_engineパイプラインで Photon を有効にすることによりこのフィールドを制御できますが、この値を直接設定することはできません。
effective_spark_versionこの値はシステムによって自動的に設定されます。
cluster_sourceこのフィールドはシステムによって設定され、読み取り専用です。
docker_imageSDP はクラスターのライフサイクルを管理するため、パイプライン クラスターでカスタム コンテナーを使用することはできません。
workload_typeこの値はシステムによって設定され、オーバーライドできません。