メインコンテンツまでスキップ

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 タスクを追加します。

  1. プラスアイコン。タスクを追加 」をクリックします。

  2. タスク名 」フィールドに名前を入力します。

  3. タイプ ドロップダウンメニューで、If/else conditionを選択します。

  4. 最初の 条件 テキスト ボックスに、評価される被演算子を入力してください。被演算子は、以下に示すいずれかを参照できます:情報。

    • ジョブパラメーター変数、例:{{job.parameters.<name>}}
    • タスクパラメーター変数です。
    • タスク値、たとえば {{tasks.<task_name>.values.<value_name>}}
  5. ドロップダウンメニューから Boolean 演算子を選択します。

  6. 2番目の 条件 テキストボックスに、条件を評価する値を入力してください。

  7. (オプション)リトライ、実行時間またはストリーミングバックログのしきい値、あるいは通知を構成するには、詳細タスク設定を参照してください。

  8. タスクの保存 をクリックします。

このタスクを編集、複製、無効化、または削除するには、Lakeflowジョブでタスクを構成および編集するを参照してください。

If/else条件で依存関係を構成します。

If/else condition**「タスク」**タブのタスクグラフから、タスクの依存関係を次の手順で構成します。

  1. タスクグラフでIf/else conditionタスクを選択し、 [**タスクを追加**] をクリックします。プラスアイコン。
  2. タスクの詳細を入力します。 Depends on フィールドは <task-name> (true) にデフォルト設定されます。ここで <task-name>If/else condition タスクの名前です。
    • false条件の評価で実行されるタスクを構成するには、<task-name> (false)を選択します。

複数のタスクを If/else condition の結果に基づいて直列または並列で実行するように構成できます。アップストリーム タスクの失敗に基づいて条件付き実行が必要な場合は、Run if dependencies の構成を検討してください。タスクの依存関係を構成するを参照してください。

注記

条件値を提供する上流タスクが無効になっている場合、If/else conditionタスクは失敗します。制限事項を参照してください。