ワークフローは、タスクノードをドラッグアンドドロップで視覚的な DAG に整理し、依存関係とスケジューリングを設定することで、信頼性の高いデータパイプラインを構築してデータ処理を自動化します。
ワークフローとは
ワークフローは、DataWorks における中核となるオーケストレーション単位です。タスクノード (SQL、Shell、Python、データ同期、Check) を、明確な依存関係を持つ DAG に整理し、統合されたスケジューリングと実行を可能にします。ワークフローは組み合わせて使用でき、複雑なビジネスシナリオにも対応します。
個々のタスクを構造化されたプロセスに統合することで、ワークフローは、個別タスクの管理からデータパイプライン全体の管理へと重心を移します。主なメリットは次のとおりです:
-
開発プロセスの抽象化と可視化
SQL や Shell などの依存関係を持つノードを、「日次アクティブユーザー分析」のようなビジネス指向のワークフローとしてカプセル化します。これにより、テクニカルリネージを明確化する分かりやすい DAG を作成できます。また、非技術系の関係者でもデータフローを理解しやすくなり、ビジネス目標と技術実装の整合性を取ることができます。 -
開発と運用保守のアトミック管理
ワークフローは、変更と運用の最小単位として機能します。テスト、再実行、データバックフィルといった運用保守作業を含め、全体としての送信とデプロイをサポートします。このアプローチにより、部分的な変更によって発生し得る課題を防止し、エンドツーエンドの一貫性と安定性を確保します。 -
チームコラボレーションの境界の定義
複数チームが関与する環境では、ワークフローにより、オーナーシップと責任範囲が明確になります。たとえば、取引チームが取引データのワークフローを所有し、プロダクトチームがプロダクトデータのワークフローを所有できます。これにより、権限分離と課題追跡が可能になります。また、標準化されたアウトプットにより、上流・下流チーム間で、効率的かつ疎結合なコラボレーションを実現します。
ワークフロータイプの比較
DataWorks では、次の 2 つのワークフロータイプを推奨します:
-
スケジュールワークフロー:固定スケジュール (毎時、毎日、毎週) に従って自動実行されます。スケジューリングルールによりトリガーされ、ノードの実行はスケジュール時刻で制御されます。繰り返し実行するデータ処理に適しています。
-
イベントトリガーワークフロー:手動操作、OpenAPI 呼び出し、イベントメッセージなどの外部シグナルにより、オンデマンドでトリガーされます。固定スケジュールには依存しません。リアルタイム処理や外部イベントへの応答に適しています。
|
機能 |
スケジュールワークフロー |
イベントトリガーワークフロー |
手動ワークフロー (推奨しません) |
|
スケジューリング方式 |
スケジュール時刻と依存関係によってトリガー |
手動、イベント、API トリガー |
手動実行 |
|
シナリオ |
日次、毎時、週次、月次バッチ |
リアルタイム処理、オンデマンド実行、外部連携 |
一時的なタスク (後方互換性のため) |
|
パラメータの優先順位 |
ノード > ワークフロー > ワークスペース |
ノード > ワークフロー > ワークスペース |
ワークフロー > ノード |
|
代表的なユースケース |
毎日深夜の T+1 レポート |
OSS ファイル到着時の自動処理 |
1 回限りのデータ修正 |
-
トリガーをバインドしていないイベントトリガーワークフローは、手動ワークフローとして利用でき、手動ワークフローを段階的に置き換えることができます。
-
手動トリガーのワークフローは、主に従来のデータ開発パターンとの互換性のためのものです。新規プロジェクトでは使用しないでください。
クイック選択ガイド
次の 3 つの質問に答えて、適切なワークフロータイプを判断します:
よくある質問
ワークフローの Spec テンプレートはどのように取得しますか?
データ開発ページで既存のワークフローを開き、キャンバス右上の [Show Spec] をクリックすると、ワークフローの Spec (JSON 形式) を表示してコピーできます。この Spec をテンプレートとして使用し、OpenAPI でワークフローを作成または更新できます。
スケジュールタスクは 1 回成功したら自動的に停止できますか?
いいえ。スケジュールワークフローは、設定されたスケジュールに基づいて継続的に実行され、1 回の成功後に自動停止しません。タスクを 1 回だけ実行したい場合は、次の 2 つの方法があります:
-
タスクを手動でフリーズする:タスクが正常に完了した後、手動でフリーズできます。フリーズされたタスクはスケジューリングサイクルの対象外になります。詳細な手順については、「定期タスクに対する基本的な運用保守の実施」をご参照ください。
-
イベントトリガーワークフローを使用する:ユースケースが 1 回限りの実行である場合、イベントトリガーワークフローの方が適しています。このタイプのワークフローはスケジュールにバインドされず、手動操作、API 呼び出し、またはイベントによってトリガーされた場合にのみ実行されるため、「1 回実行して停止」の要件を本質的に満たします。
関連ドキュメント
シナリオに応じてトピックを選択します:
-
スケジュール実行のシナリオについては、「スケジュールワークフローのオーケストレーション」をご参照ください。
-
イベント駆動のシナリオについては、「イベントトリガーワークフロー」をご参照ください。
-
運用保守とモニタリングについては、「概要」をご参照ください。