Lakeflow パイプラインのクラシック コンピューティングを構成して、コンピューティング ポリシー、インスタンスの種類、クラスターの設定を制御します。 JSON スキーマのリファレンスについては、Pipeline API リファレンスの clusters 定義を 参照してください。
Databricksは新しいパイプラインにはサーバーレスを推奨しています。 特定のインスタンスタイプ、カスタムコンピュートポリシー、init スクリプト、クラスタにインストールした外部JDBCドライバー、サーバーレス対応地域外のワークスペースが必要な場合は、クラシックコンピュートを選択してください。 サーバーレス パイプラインの構成を参照してください。
クラシック コンピューティングで実行されるパイプラインを作成するには、まず、ユーザーがクラシック コンピューティングをデプロイするためのアクセス許可 (無制限の作成アクセス許可またはコンピューティング ポリシーへのアクセス) を持っている必要があります。 サーバーレス パイプラインでは、コンピューティング作成のアクセス許可は必要ありません。 既定では、すべてのワークスペース ユーザーはサーバーレス パイプラインを使用できます。
クラシックとサーバーレス計算の比較、それぞれがどの機能をサポートしているかについては、 パイプラインについてはServerless vs. classic computeを参照してください。
注
パイプライン ランタイムはパイプライン コンピューティングのライフサイクルを管理し、カスタム バージョンの Databricks Runtime を実行するため、Spark のバージョンやクラスター名など、パイプライン構成で一部のコンピューティング設定を手動で設定することはできません。 ユーザーが設定できないクラスター属性を参照してください。
パイプラインのコンピューティングを選択する
Lakeflow Pipelines エディターからパイプラインのクラシック コンピューティングを構成するには:
- [設定]をクリックします。
- パイプライン設定の [コンピューティング ] セクションで、[
をクリックします。編集します。
- オンになっている場合は、[ サーバーレス] をオフにします。
- コンピューティング設定に他の変更を加えて、[ 保存] をクリックします。
これにより、クラシック コンピューティングを使用するようにパイプラインが構成され、次に説明するようにコンピューティング設定を編集できます。
Lakeflow パイプライン エディターの詳細については、「Lakeflow パイプライン エディターを 使用した ETL パイプラインの開発とデバッグ」を参照してください。
コンピューティング ポリシーを選択する
ワークスペース管理者は、ユーザーにパイプラインのクラシック コンピューティング リソースへのアクセスを提供するようにコンピューティング ポリシーを構成できます。 コンピューティング ポリシーは省略可能です。 必要なコンピューティング特権がない場合は、ワークスペース管理者に確認してください。 「Lakeflow パイプラインコンピューティングの制限を定義する」を参照してください。
Pipelines API を使用する場合は、コンピューティング ポリシーの既定値が正しく適用されるように、"apply_policy_default_values": true定義でclustersを設定します。
{
"clusters": [
{
"label": "default",
"policy_id": "<policy-id>",
"apply_policy_default_values": true
}
]
}
コンピューティング タグを構成する
パイプラインのクラシック コンピューティング リソースにカスタム タグを追加できます。 タグを使用すると、組織内のさまざまなグループで使用されるコンピューティング リソースのコストを監視できます。 Databricks は、これらのタグをクラウド リソースと使用状況 システム テーブルに記録された使用状況ログに適用します。 タグを追加するには、 クラスター タグ UI 設定を使用するか、パイプラインの JSON 構成を編集します。
パイプラインを実行するインスタンスの種類を選択する
既定では、パイプラインはドライバー ノードとワーカー ノードのインスタンスの種類を選択します。 必要に応じて、インスタンスの種類を構成できます。 たとえば、パイプラインのパフォーマンスを向上させたり、パイプラインの実行時にメモリの問題に対処したりするには、インスタンスの種類を選択します。
Lakeflow Pipelines エディターでパイプラインを作成または編集するときにインスタンスの種類を構成するには:
- [Settings] をクリックします。
- パイプライン設定の [コンピューティング ] セクションで、[鉛筆]
をクリックします。
- [ 詳細設定 ] セクションで、パイプラインの Worker の種類 と ドライバーの種類 のインスタンスの種類を選択します。
更新クラスターとメンテナンス クラスターの個別の設定を構成する
各宣言型パイプラインには、パイプラインの更新を処理する更新クラスターと、毎日のメンテナンス タスクを実行するメンテナンス クラスター ( 予測最適化を含む) という 2 つのコンピューティング リソースが関連付けられています。 既定では、コンピューティング構成は両方のクラスターに適用されます。 両方のクラスターで同じ設定を使用すると、ストレージの場所のデータ アクセス資格情報などの必要な構成がメンテナンス クラスターに適用されるようにすることで、メンテナンスの実行の信頼性が向上します。
2 つのクラスターのいずれかに設定を適用するには、設定 JSON オブジェクトに label フィールドを追加します。
label フィールドには、次の 3 つの値を指定できます。
-
maintenance: 設定をメンテナンス クラスターにのみ適用します。 -
updates: 設定を更新クラスターにのみ適用します。 -
default: 更新クラスターとメンテナンス クラスターの両方に設定を適用します。 これは、labelフィールドを省略した場合の既定値です。
競合する設定がある場合、 updates ラベルまたは maintenance ラベルを持つ設定は、 default ラベルで定義されている設定よりも優先されます。
注
毎日のメンテナンス クラスターは、特定の場合にのみ使用されます。
- Hive メタストアに格納されているパイプライン。
- サーバーレス コンピューティングのサービス条件に同意していないワークスペース内のパイプライン。 条件に同意するためのサポートが必要な場合は、Databricks の担当者にお問い合わせください。
- サーバーレスへのプライベート リンクが正しく構成されていないワークスペース内のパイプライン。
例: 更新クラスターの設定を定義する
次の例では、updates クラスターの構成にのみ追加される Spark 構成パラメーターを 定義します:
{
"clusters": [
{
"label": "default",
"autoscale": {
"min_workers": 1,
"max_workers": 5,
"mode": "ENHANCED"
}
},
{
"label": "updates",
"spark_conf": {
"key": "value"
}
}
]
}
注
クラシック計算でコストを抑えるには、強化されたオートスケーリング("mode": "ENHANCED")を有効にし、ピーク負荷に合わせた固定されたワーカー数ではなく、ワークロードに合った現実的な min_workers ・ max_workers 境界を設定しましょう。
自動スケーリングを使用した Lakeflow パイプライン クラスターの使用率の最適化に関する説明を参照してください。
例: 更新クラスターのインスタンスの種類を構成する
不要なリソースを maintenance クラスターに割り当てないように、この例では updates ラベルを使用して、updates クラスターのみのインスタンスの種類を設定します。
{
"clusters": [
{
"label": "updates",
"node_type_id": "Standard_D12_v2",
"driver_node_type_id": "Standard_D3_v2",
"...": "..."
}
]
}
コンピューティングのシャットダウンを遅延する
クラスターのシャットダウン動作を制御するには、パイプライン構成の pipelines.clusterShutdown.delay 設定を使用します。 次の例では、pipelines.clusterShutdown.delay 値を 60 秒に設定します。
{
"configuration": {
"pipelines.clusterShutdown.delay": "60s"
}
}
pipelines.clusterShutdown.delayの既定値は、更新プログラムの実行動作によって異なります。自動再試行と再起動の動作を使用する更新プログラムの0 secondsと、デバッグに重点を置いた高速な動作を使用するアドホック更新の2 hours。
注
パイプライン コンピューティング リソースは、使用されていない場合は自動的にシャットダウンされるため、 autotermination_minutesを設定するコンピューティング ポリシーを使用することはできません。 これにより、エラーが発生します。
単一ノード コンピューティングを作成する
1 つのノード コンピューティングには、マスターとワーカーの両方として機能するドライバー ノードがあります。 これは、少量のデータを使用するワークロード、または分散されていないワークロードを対象としています。
単一ノード コンピューティングを作成するには、 num_workers を 0 に設定します。 例えば次が挙げられます。
{
"clusters": [
{
"num_workers": 0
}
]
}