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