コンテンツにスキップ

スケジュールでワークフローを自動化する

約25分 · スケジュール実行、実行履歴、障害への対処

すでにワークフローがあるとします。たとえば、データのロード、変換、公開で作成した売上クリーンアップのパイプラインです。現在は、実行をクリックしたときに実行されます。このチュートリアルでは、その役割を PlaidCloud に任せます。ワークフローがカレンダーに従って自動的に実行されるようにし、その実行を監視して、実行されたことを確認し、実行が失敗したときに復旧する方法を学びます。

手動のパイプラインを自動化されたパイプラインに変えるのは、次の3つです。このチュートリアルでは、それぞれを順に進めます。

  • スケジュール — 選択した日時にワークフローを起動するルール。
  • 信頼できる記録 — 見ていない間に何が起きたかを示す、実行履歴とログ。
  • 障害への対応計画 — 無人のジョブはいずれ不正なデータに遭遇するため、障害が黙って見過ごされないようにする必要があります。
スケジュール実行実行履歴+ ログ復旧停止した場所から再開
スケジュールが実行を管理するようになると、実行が成功したかどうかは履歴とログで確認でき、成功しなかった場合は再開で復旧できます。
  • 手動で実行したときに正しく動作するワークフローがある PlaidCloud ワークスペース。ない場合は、先にデータのロード、変換、公開で作成してください。
  • そのワークスペースで分析 → ツール → イベントスケジューラーにアクセスできること。

すでに問題なく実行できるワークフローをスケジュールしてください。 自動化は、ワークフローの動作をそのまま繰り返します。ミスも例外ではなく、しかも無人で繰り返されます。スケジュールを設定する前に、手動で一度、問題なく最後まで実行してください。

ステップ1: 手動で実行できることを確認する

Section titled “ステップ1: 手動で実行できることを確認する”

ワークフローを開き、比較の基準となるベースラインを得るために、手動で一度実行します。

  1. プロジェクトを開き、ワークフローの階層に移動します。
  2. ワークフローの実行アイコンをクリックするか、ワークフローを開いてアクションメニューから Run All を選択します(ワークフローテーブルの上部にある Toggle Start/Stop ボタンでも同じ操作ができ、実行中の処理を停止することもできます)。
  3. 実行が進むにつれて、ステップのステータスアイコンを確認します。各ステップに、現在の状況と実行時間が表示されます。アイコンにカーソルを合わせると、そのメッセージが表示されます。

表示されるステータスと、それぞれの意味は次のとおりです。

ステータス 意味
待機中 キューに入っており、まだ開始されていません。
実行中 処理中です。実行時間がカウントアップされます。
完了 正常に終了しました。
警告 終了しましたが、ログで確認すべき事項がありました。
エラー ステップが失敗しました。ステップエラーの管理を参照してください。
スキップ 無効になっているか、実行条件が満たされなかったため、スキップされました。
続行済み 失敗しましたが、エラー時に続行する設定になっていたため、実行は続行されました。

問題のない実行では、すべてのステップが完了で終わります。これが、正常な状態を示すベースラインです。ステータスの詳細は、ワークフローを実行するを参照してください。

ステップ2: スケジュールを作成する

Section titled “ステップ2: スケジュールを作成する”

次に、その実行をイベントスケジューラーに任せます。

  1. 分析を開き、ツールを選択して、イベントスケジューラーをクリックします。Events Table に、ワークスペースに設定済みのすべてのイベントが一覧表示されます。
  2. スケジュールイベントを追加をクリックします。
  3. フォームで必須としてマークされている項目を入力し、イベントの対象を、先ほど実行したワークフロー(とそのプロジェクト)に設定します。
  4. Event Schedule タブを開き、Schedule type を選択します。
    • Use Classic Schedule — 実行する月、日、時、分を指定します。まずは、数分後など、すぐに実行されるのを確認できるものから始めてください。
    • Use Workday Schedule — 時刻ではなく、会計上の営業日を指定します。営業日スケジュールは祝日カレンダーにも対応できるため、実行が正しい営業日に行われます。
  5. 作成をクリックします。

これで Events Table にイベントが表示され、説明列に、月単位、日/時/分単位、または営業日単位のどれでスケジュールされているかが示されます。

特に指定しない限り、時刻はロンドン時間です。 新しいイベントのデフォルトは UTC +0 で、英国夏時間を含むロンドン時間として扱われます。「午前9時」を自分のいる場所の午前9時にしたい場合は、イベントのタイムゾーンフィールドを設定してください。そうしないと、スケジュールされた実行が想定より数時間ずれることがあります。他のほとんどのオフセットも、その場所の現地時間に従います。イベントスケジューラーを参照してください。

テスト用のスケジュールには、無限に実行されないよう上限を設けてください。 Limit Running セクションでは、イベントを一定の期間、一定の回数だけ実行するように設定できます。試用中のスケジュールであれば、数分おきに何週間も黙って実行されるジョブを避けられます。

ステップ3: 実行される日時をプレビューする

Section titled “ステップ3: 実行される日時をプレビューする”

スケジュールを信頼する前に、実際にどう動作するかを確認します。

  1. Upcoming Runs Calendar を開きます。これは読み取り専用のプレビューで、実際の実行を駆動するものと同じスケジュールを展開して表示します。そのため、表示されたとおりに実行され、確認するだけで何かがトリガーされることはありません。
  2. 月、週、予定表のビューを切り替えます。前へ、次へ、今日で時間を移動し、更新で最新の情報を再取得します。
  3. 想定した日時にイベントが表示されていることを確認します。各実行は、ワークフローの標準的な所要時間に応じた長さのバーで表示されます。

バーが横に並んでいる場合は、重複を意味します。 同じ時間帯に2つの実行のバーが並んでいる場合、それらの実行は衝突しています。同じデータやリソースを取り合う場合は、スケジュールをずらしてください。イベントドリブンのセンサーには将来の固定の時刻がないため、ここには表示されません。今後の実行カレンダーを参照してください。

時刻を待ちたくない場合は、Events Table でイベントを選択し、選択したイベントを実行をクリックすると、すぐに起動できます。スケジュールされた経路がエンドツーエンドで機能することを、今すぐ確認するのに便利です。

ステップ4: 実行履歴とログを確認する

Section titled “ステップ4: 実行履歴とログを確認する”

自動化された実行は、あなたが別の場所にいる間に行われるため、実際に頼りになるのは、実行が残す記録です。

  • 実行履歴はワークフローごとに保持されます。各実行が個別のエントリーになります。再開された実行は、再実行されたステップだけを含む新しい実行として記録され、元の実行は独自のエントリーを保持します。そのため、履歴は上書きされる1行ではなく、実際に起きたことを正確に時系列で示します。
  • ワークフローのログは、ステップの実行や警告の発生など、イベントをリアルタイムで記録します。プロジェクトエリアのログタブから開きます。ログはプロジェクト全体のログにも集約されるため、複数のワークフローを同時に確認できます。ビューアーでは並べ替えとフィルターが可能で、任意のエントリーを開いて詳細を確認できます。ワークフローログを表示するを参照してください。
  • ワークフローレポートは、ワークフローの現在の状態、つまりステップ、関数、変数を記録します。ワークフロー階層のレポートアイコンからオンデマンドで生成されます。自動化されたジョブが実際に何をするのかを誰かに聞かれたときに便利です。ワークフローレポートを表示するを参照してください。

スケジュール実行またはオンデマンド実行の後で、ログを開き、想定した実行が記録されていて、意図したとおりに終了していることを確認します。

無人のジョブは、いずれ不正なデータに遭遇します。そのときにどうなるかを、今のうちに決めておいてください。PlaidCloud には3つの対応方法があり、適切なものはステップによって異なります。

選択肢 動作 使いどき
ワークフローを停止する 実行が停止します。ステップとワークフローの両方にエラーインジケーターが表示されます。 デフォルトです。ほとんどのステップは、実際の障害の先に進むべきではありません。
エラー時に続行する ステップにはエラーのマークが付きますが、実行はそのステップを完了したものとして扱い、続行します。 データが存在しなくても問題なく失敗できるステップ。
修復ワークフロー 失敗した実行は停止し、代わりに2つ目のワークフローが開始されます。 障害時に誰かに通知したり、自動修復を試みたりしたい場合。

これを決める設定は2つあり、どちらもステップのフォームの一般タブにあります(ワークフローテーブルでステップの歯車アイコンをクリックするか、ステップを右クリックしてステップの詳細を編集を選択します)。

  • 再試行 — 失敗したステップは、指定した回数だけ、数秒から数時間の間隔をあけて再試行できます。これだけで、リモートシステムが一時的に利用できなかったことによる障害のほとんどを回復できます。ステップエラーの管理を参照してください。
  • エラー時に実行するアクション — 続行を選択すると、そのステップが失敗してもワークフローは停止しません。このように設定されたステップには、ワークフローテーブルに専用のインジケーターが表示されます。エラー時に続行するを参照してください。

エラー時に続行する設定にすると、障害が修復計画から隠れます。 続行するようにマークされたステップはワークフローを停止させないため、修復ワークフローもトリガーされません。修復ワークフローをトリガーするのは、そうでなければ実行を停止させる障害だけです。エラー時に続行する設定は、本当に無視してよい障害にのみ使用してください。

スケジュール実行が実際に失敗した場合でも、最初からやり直す必要はほとんどありません。再開は、停止またはエラーになった実行を、中断したところから再開します。正常に完了しなかったステップを再実行し、完了済みのステップには手を加えません。再開は、ワークフローの直近の実行が一時停止、停止、またはエラーで終了した場合に利用できます。

ステップ6: 必要なときに一時停止する

Section titled “ステップ6: 必要なときに一時停止する”

オフにできない自動化は、リスクになります。スケジュールを削除せずにオフラインにするには、次の手順を実行します。

  1. 分析 → ツール → イベントスケジューラーを開き、イベントの編集アイコンをクリックします。
  2. アクティブチェックボックスをオフにして、更新をクリックします。

イベントは、再度アクティブにするまでスケジュールどおりに起動しなくなります。再度アクティブにするには、同じ編集の手順でアクティブにチェックを入れます。完全に削除するには、代わりに削除アイコンを使用します。アクティブなイベントには Events Table にアクティブアイコンが表示されるため、一目で有効なものが分かります。

これで準備完了です。 スケジュールされたイベント、確認できる実行履歴、そして最初の障害への対処方法が整いました。また、削除することなく、全体を一時停止することもできます。