ワークフロー定義について
    • PDF

    ワークフロー定義について

    • PDF

    記事の要約

    概要

    ワークフロー定義についてのヘルプページです。

    プラン上の制約

    ワークフロー定義は、FreeプランまたはEssentialプラン以上の契約アカウントでのみ、ご利用いただけます。

    ワークフローの中に組み込む転送ジョブやデータマートジョブなどの1個ずつの単位を「タスク」と呼びます。
    ワークフロー定義では、タスクの順序と組み合わせを設定することで、一連のフローを作成します。

    about-workflow-2024-08-29-11-51-0

    ワークフローに定義できるタスク

    ワークフローには以下のタスクを組み込むことができます。

    • TROCCO転送ジョブ
    • TROCCOマネージド転送設定
    • TROCCOデータマートシンク
    • TROCCOワークフロー
    • TROCCO dbtジョブ
    • Google BigQueryデータチェック
    • Snowflakeデータチェック
    • Amazon Redshiftデータチェック
    • HTTPリクエスト
    • Slack通知
    • Tableauデータ抽出

    タイムアウト設定

    image1.png

    タスク同時実行上限数

    フロー内で設定する並列のタスクを同時実行する上限数を決定します。
    最大で10個までのタスクを同時実行できます。

    タスク同時実行上限数を設定すると、各タスクを並列で定義した際に、1つのワークフロー上で並列で動くタスク数が増えるため、ワークフロー全体の実行時間短縮につながります。

    タイムアウト設定

    無効にした場合、ワークフロー定義上では、実行時間によるタイムアウトは設けません。設定したワークフローが完了するまで実行が進みます。
    有効にした場合、ワークフロージョブが開始してから設定した時間が経過すると、ジョブをキャンセルします。
    タイムアウトでジョブがキャンセルされると、停止位置から再実行、もしくはワークフロージョブを中断できます。
    もし、転送元などワークフロー定義以外の場所でタイムアウトを設定していた場合、そちらのほうがワークフロー定義上のタイムアウト設定よりも優先されます。
    たとえば後続で利用しているBIツールのジョブのスケジュールの関係など、指定の時間までにワークフロー処理が終わっていないといけない等の制限がある場合、時間になったら強制的にワークフロージョブを停止したい、といった場合に使用できる機能です。

    リトライ回数

    ワークフローが失敗したときに、自動リトライを行う回数、および次回リトライ実行までの時間間隔を設定します。
    なお、以下の場合には自動リトライは行われません。

    • 回数を0回に設定した場合
    • タスクが全て成功だった場合
    • キャンセルがあった場合
    リトライ間隔に関する制約

    リトライ回数とリトライ間隔の積は60分を超えないように設定する必要があります。

    ジョブの重複実行

    ワークフロージョブが、次のスケジュールの時間になってもまだ実行中の場合、次のスケジュールをスキップするか重複実行するかを選択します。
    スキップした場合、データのリアルタイム性は下がりますが、転送先でのデータ重複などの心配がありません。重複実行した場合、データの二重反映などの懸念がありますが、スケジュール通りのデータ反映が行えます。

    タスクのエラーハンドリング

    前のタスクが失敗したとき、以降のタスクを実行するかどうかを選択します。
    OFFにした場合、いずれかのタスクが失敗すると、後続のタスクを実行せず、ワークフローを停止します。
    ONにした場合、いずれかのタスクが失敗しても、後続のタスクを実行します。
    ワークフロー内に前後の依存関係をもつタスクがあるケースでは、エラーハンドリングをOFFにし、意図しないデータの更新を避けることができます。
    依存関係のないタスクのみの構成であれば、失敗したタスク以外は実行しても問題ないと考えられます。

    スケジュール設定・通知設定

    • ワークフローのジョブ実行をスケジュール設定して管理できます。
      毎時、毎日、毎週、毎月の4パターンから、実行するタイミングを選択します。
      ワークフロー定義と各タスクにそれぞれスケジュール設定をしていた場合、すべてのスケジュールが実行されるものとなります。可能な限り、ワークフロー定義か各タスクか、どちらかにスケジュール設定を寄せて運用することをおすすめします。

    image2.png

    • SlackもしくはEmailでの通知を設定し、アラートを管理できます。
      1つのワークフローに対して複数の通知を設定できるので、ワークフロージョブ完了時、エラー時などによって使い分けることが可能です。

    image3.png

    フロー編集

    • フロー編集画面で、転送ジョブやデータマートシンクなどを配置することで、フローを作成します。
    • フロー図内を範囲選択することで複数のタスクを一度に選択し、1つの始点から一度に線を引いて順序を設定できます。
    • ワークフローの親子関係を作成できます。
      子ワークフローのタスクが失敗したことにより親ワークフローが停止し、親ワークフローを再実行する場合、子ワークフローのエラーになったジョブから再実行がスタートします。

    image4.png

    ワークフロージョブが失敗したときの挙動

    ワークフロージョブが失敗した状態からジョブを再実行すると、停止したタスクから再実行がスタートします。

    例)

    • 転送ジョブ並列2タスク+データマート+通知のフロー図
    • 並列実行2タスクまで許可している
    • 転送ジョブの1つが失敗した場合
    • タスクのエラーハンドリングをONにしている場合、失敗していない転送ジョブ、データマートジョブ、通知タスクは実行されます。
    • タスクのエラーハンドリングをOFFにしている場合、エラーが検知された時点でワークフロージョブが停止します。
    • エラーが検知された転送ジョブの設定を変更し、再実行すると、修正したタスクから再実行がスタートし、後続のジョブが実行されます。

    この記事は役に立ちましたか?