If/else タスクを使用してジョブに分岐ロジックを追加する
If/else conditionタスクを使用して、タスクグラフにBoolean条件ロジックを追加します。これらのタスクは、Boolean演算子とオペランドのペアで構成されます。このオペランドは、構成されたまたは動的なパラメーターやタスク値を使用して、ジョブまたはタスクの状態を参照する場合があります。ジョブのパラメーター化を参照してください。
たとえば、process_recordsという名前のタスクがあり、bad_recordsという値に有効でないレコードの数を保持していて、無効なレコードが見つかったときに処理を分岐したいとします。このロジックをワークフローに追加するには、{{tasks.process_records.values.bad_records}} > 0のような式を使用してIf/else conditionタスクを作成できます。その後、条件の結果に基づいて依存タスクを追加できます。
If/else conditionタスクを含むジョブ実行後、UIでジョブ実行の詳細を表示すると、結果と式評価の詳細を表示できます。ジョブ実行の詳細を表示を参照してください。
- 数値と非数値は、Boolean演算子によって処理が異なります。
==と!=演算子はオペランドの文字列比較を実行します。例えば、12.0 == 12はfalseと評価されます。>、>=、<、および<=の演算子は、オペランドの数値比較を実行します。例えば、12.0 >= 12はtrueと評価され、10.0 >= 12はfalseと評価されます。- オペランドでタスク値を参照する場合、数値、文字列、およびブール値のみが許可されます。他の型では、条件式が失敗します。数値以外の値型は文字列にシリアル化され、
If/else condition式では文字列として扱われます。たとえば、タスクバリューがBoolean値に設定されている場合、"true"または"false"にシリアル化されます。
If/else タスクを構成する
次の手順で、Jobs UI の タスク タブから If/else condition タスクを追加します。
-
「 タスクを追加 」をクリックします。
-
「 タスク名 」フィールドに名前を入力します。
-
タイプ ドロップダウンメニューで、
If/else conditionを選択します。 -
最初の 条件 テキスト ボックスに、評価される被演算子を入力してください。被演算子は、以下に示すいずれかを参照できます:情報。
- ジョブパラメーター変数、例:
{{job.parameters.<name>}}。 - タスクパラメーター変数です。
- タスク値、たとえば
{{tasks.<task_name>.values.<value_name>}}。
- ジョブパラメーター変数、例:
-
ドロップダウンメニューから Boolean 演算子を選択します。
-
2番目の 条件 テキストボックスに、条件を評価する値を入力してください。
-
(オプション)リトライ、実行時間またはストリーミングバックログのしきい値、あるいは通知を構成するには、詳細タスク設定を参照してください。
-
タスクの保存 をクリックします。
このタスクを編集、複製、無効化、または削除するには、Lakeflowジョブでタスクを構成および編集するを参照してください。
If/else条件で依存関係を構成します。
If/else condition**「タスク」**タブのタスクグラフから、タスクの依存関係を次の手順で構成します。
- タスクグラフで
If/else conditionタスクを選択し、 [**タスクを追加**] をクリックします。 - タスクの詳細を入力します。 Depends on フィールドは
<task-name> (true)にデフォルト設定されます。ここで<task-name>はIf/else conditionタスクの名前です。- false条件の評価で実行されるタスクを構成するには、
<task-name> (false)を選択します。
- false条件の評価で実行されるタスクを構成するには、
複数のタスクを If/else condition の結果に基づいて直列または並列で実行するように構成できます。アップストリーム タスクの失敗に基づいて条件付き実行が必要な場合は、Run if dependencies の構成を検討してください。タスクの依存関係を構成するを参照してください。
条件値を提供する上流タスクが無効になっている場合、If/else conditionタスクは失敗します。制限事項を参照してください。