Delta Live Tables パイプラインのコンピュートの構成
この記事では、 Delta Live Tables パイプラインのカスタム コンピュート設定を構成する際の手順と考慮事項について説明します。
クラスターポリシーを選択
ユーザーは、 Delta Live Tables パイプラインを構成および更新するためにコンピュートをデプロイする権限を持っている必要があります。 ワークスペース 管理者は、クラスターポリシー を構成して、ユーザーに Delta Live Tablesのコンピュート リソースへのアクセスを提供できます。 「Delta Live Tables パイプライン コンピュートの制限の定義」を参照してください。
注:
クラスターポリシーはオプションです。 Delta Live Tablesに必要なコンピュート権限がない場合は、ワークスペース管理者に確認してください。
クラスターポリシーのデフォルト値が正しく適用されるようにするには、パイプライン設定のクラスター設定で
apply_policy_default_values
をtrue
に設定します。{ "clusters": [ { "label": "default", "policy_id": "<policy-id>", "apply_policy_default_values": true } ] }
クラスタータグの設定
クラスタータグを使用して、パイプラインクラスターの使用状況を監視できます。Delta Live Tables UI でクラスタータグを追加するには、パイプラインを作成または編集するとき、またはパイプライン クラスターのJSON設定を編集します。
パイプラインを実行するインスタンスタイプの選択
デフォルトでは、Delta Live Tables はパイプラインのドライバーノードとワーカーノードのインスタンスタイプを選択します。 オプションで、インスタンスタイプを設定できます。
たとえば、インスタンスタイプを選択して、パイプラインのパフォーマンスを向上させたり、パイプラインの実行時にメモリの問題に対処したりします。 インスタンスタイプは、REST API を使用してパイプライン を作成 または 編集 するとき、または Delta Live Tables UI で構成できます。
Delta Live Tables UI でパイプラインを作成または編集するときにインスタンスの種類を構成するには:
[設定]ボタンをクリックします。
パイプライン設定の [詳細設定 ] セクションの [ ワーカータイプ ] と [ ドライバータイプ ] ドロップダウンメニューで、パイプラインのインスタンスタイプを選択します。
高度なコンピュート構成
各 Delta Live Tables パイプラインには、次の 2 つのクラスターが関連付けられています。
updates
クラスターは、パイプラインの更新を処理します。maintenance
クラスターは、毎日のメンテナンス タスクを実行します。
ワークスペース パイプライン構成 UI を使用して指定されたコンピュート設定は、更新クラスターとメンテナンス クラスターの両方に適用されます。 これらの設定を個別に変更するには、JSON 設定を編集する必要があります。
これらのクラスターが使用する構成は、パイプライン設定で指定された clusters
属性によって決まります。
クラスター ラベルを使用すると、特定のクラスターの種類にのみ適用されるコンピュート設定を追加できます。 パイプラインクラスターの設定に使用できるラベルは 3 つあります。
注:
クラスター ラベルの設定は、クラスター構成を 1 つだけ定義する場合は省略できます。 ラベルの設定が指定されていない場合、 default
ラベルはクラスター構成に適用されます。 クラスター ラベルの設定は、さまざまなクラスターの種類の設定をカスタマイズする必要がある場合にのみ必要です。
default
ラベルは、updates
クラスターとmaintenance
クラスターの両方のコンピュート設定を定義します。両方のクラスターに同じ設定を適用すると、ストレージの場所のデータアクセス認証情報などの必要な設定がメンテナンスクラスターに確実に適用されるため、メンテナンス実行の信頼性が向上します。maintenance
ラベルは、maintenance
クラスターのみに適用されるコンピュート設定を定義します。また、maintenance
ラベルを使用して、default
ラベルによって構成された設定を上書きすることもできます。updates
ラベルは、updates
クラスターのみに適用される設定を定義します。これを使用して、maintenance
クラスターに適用しない設定を構成します。
default
ラベルとupdates
ラベルを使用して定義された設定がマージされ、updates
クラスターの最終的な構成が作成されます。同じ設定が default
ラベルと updates
ラベルの両方を使用して定義されている場合、 updates
ラベルで定義された設定は、 default
ラベルで定義された設定よりも優先されます。
次の例では、 updates
クラスターの構成にのみ追加される Spark 構成パラメーターを定義しています。
{
"clusters": [
{
"label": "default",
"autoscale": {
"min_workers": 1,
"max_workers": 5,
"mode": "ENHANCED"
}
},
{
"label": "updates",
"spark_conf": {
"key": "value"
}
}
]
}
Delta Live Tables には、 Databricksの他のコンピュートと同様のクラスター設定オプションがあります。 他のパイプライン設定と同様に、クラスターの JSON 構成を変更して、UI に存在しないオプションを指定できます。 コンピュートを参照してください。
注:
Delta Live Tables ランタイムはパイプライン クラスターのライフサイクルを管理し、 Databricks Runtimeのカスタム・バージョンを実行するため、Spark・バージョンやクラスター名など、パイプライン構成の一部のクラスター設定を手動で設定することはできません。ユーザーが設定できないクラスター属性を参照してください。
更新クラスターとメンテナンスクラスターのインスタンスタイプを設定する
パイプラインの JSON 設定でインスタンスタイプを設定するには、[ JSON ] ボタンをクリックし、クラスター設定にインスタンスタイプ設定を入力します。
注:
maintenance
クラスターに不要なリソースを割り当てるのを避けるために、この例では updates
ラベルを使用して、updates
クラスターのみのインスタンスタイプを設定します。インスタンスタイプを updates
クラスターと maintenance
クラスターの両方に割り当てるには、 default
ラベルを使用するか、ラベルの設定を省略します。 ラベルの設定が指定されていない場合、 default
ラベルはパイプラインクラスター設定に適用されます。 「コンピュートの詳細設定」を参照してください。
{
"clusters": [
{
"label": "updates",
"node_type_id": "n1-highmem-16",
"driver_node_type_id": "n1-standard-4",
"..." : "..."
}
]
}
コンピュートのシャットダウンを遅らせる
クラスターのシャットダウン動作を制御するには、開発モードまたは本番運用モードを使用するか、パイプライン構成の pipelines.clusterShutdown.delay
設定を使用します。 次の例では、 pipelines.clusterShutdown.delay
値を 60 秒に設定します。
{
"configuration": {
"pipelines.clusterShutdown.delay": "60s"
}
}
production
モードが有効になっている場合、pipelines.clusterShutdown.delay
のデフォルト値は 0 seconds
です。development
モードが有効になっている場合、デフォルト値は 2 hours
です。
注:
Delta Live Tables クラスターは使用されていないときは自動的にシャットダウンされるため、クラスター構成で autotermination_minutes
を設定するクラスターポリシーを参照するとエラーが発生します。
シングルノードクラスターを作成する
クラスター設定で num_workers
を 0 に設定すると、クラスターは シングル ノード クラスターとして作成されます。 オートスケール クラスターを構成し、 min_workers
を 0 に、 max_workers
を 0 に設定すると、シングル ノード クラスターが作成されます。
オートスケール クラスターを構成し、 min_workers
のみを 0 に設定した場合、クラスターは Single Node クラスターとして作成されません。 クラスターには、終了するまで常に少なくとも 1 つのアクティブなワーカーがあります。
Delta Live Tablesでシングルノードクラスタを作成するためのクラスタ設定の例:
{
"clusters": [
{
"num_workers": 0
}
]
}