ワークフローは、タスクをドラッグして接続することで作成できる視覚的な有向非巡回グラフ (DAG) です。特定の時刻にタスクを実行するには、ワークフローを作成し、そのタスクとスケジューリングポリシーを定義します。このトピックでは、ワークフローの作成方法と実行方法について説明します。
制限事項
-
ワークフローは、デプロイ済みのバッチジョブに対してのみ作成できます。
-
ワークフロー機能はパブリックプレビュー中です。この期間中は SLA が保証されません。詳細については、「Realtime Compute for Apache Flink のサービスレベルアグリーメント (SLA)」を参照してください。問題が発生した場合は、チケットを起票してください。
-
ワークフロー機能は、中国 (上海)、中国 (杭州)、中国 (北京)、中国 (深セン)、中国 (張家口)、およびシンガポールリージョンでのみ利用可能です。
ワークフローの作成
-
対象ワークスペースの操作列で、コンソールをクリックします。
-
左側のナビゲーションウィンドウで、を選択します。
-
ワークフローの作成をクリックし、以下のパラメーターを設定します。
パラメーター
説明
ワークフロー名
ワークフロー名は、現在の名前空間内で一意である必要があります。
変数設定
プリセット値を使用したデータ処理を有効にします。
-
変数名: カスタム変数名 (例:
${date})。 -
変数値: 静的な日付、時刻形式、または式を指定できます。
以下のシステム時刻変数がサポートされています。
-
変数名
system.biz.date、値${system.biz.date}: 日次ワークフローインスタンスのスケジュール時刻の前日を表し、yyyyMMdd形式です。 -
変数名
system.biz.curdate、値${system.biz.curdate}: 日次ワークフローインスタンスのスケジュール日 (年、月、日) を表し、yyyyMMdd形式です。 -
変数名
system.datetime、値${system.datetime}: 日次ワークフローインスタンスのスケジュール時刻 (年、月、日、時、分、秒) を表し、yyyyMMddHHmmss形式です。
説明-
マテリアライズドテーブルのワークフローを作成する場合、この設定は不要です。
-
これらのパラメーターは、ワークフロー内のタスクに関連付けられているすべてのデプロイメントに適用されます。ワークフローレベルの設定は、デプロイメントレベルの設定を上書きします。
スケジューリングタイプ
2 つのスケジューリングタイプをサポートしています。
-
手動トリガー: 実行をクリックしてワークフローを手動で実行します。一時的なテストや即時処理に適しています。
-
定期スケジューリング: スケジューリングルールに基づいてワークフローをトリガーします。分単位、時間単位、または日単位の間隔で実行するようにスケジュールできます。
重要マテリアライズドテーブルタスクを含むワークフローには、定期スケジューリングが必要です。
スケジュールルール
定期スケジュールの場合にのみ必須です。cron 式を使用して複雑なルールを定義できます。例:
-
0 0 */4 ? * *: 4 時間ごとに実行します。 -
0 0 2 ? * *: 毎日午前 2:00 に実行します。 -
0 0 5,17 ? * MON-FRI: 月曜日から金曜日の午前 5:00 および午後 5:00 に実行します。
cron 式の構文の詳細については、「Cron 式の構文」を参照してください。
スケジュール開始時刻
ルールが有効になる時刻です。このパラメーターは、定期スケジュールタイプの場合にのみ必須です。
重要-
定期スケジュールのワークフローは、その状態が有効になっている場合にのみ実行されます。
-
タスクがスケジュールウィンドウを逃さないようにするには、スケジュール開始時刻を未来の時刻に設定してください。
失敗時のリトライ回数
ワークフロー内の失敗したタスクをリトライする回数を指定します。デフォルトではリトライは無効になっています。
失敗通知
ワークフロー内のタスクが失敗した際の通知先のデフォルトのメールアドレスです。
説明CloudMonitor を通じて、DingTalk、SMS などの方法でアラートを設定できます。詳細については、「モニタリングとアラートの設定」を参照してください。
リソースキュー
ワークフローのデプロイ先です。詳細については、「リソースキューの管理」を参照してください。この設定はデフォルトですべてのタスクに適用されるため、タスクレベルでの設定は不要です。
説明この設定を変更しても、対応するデプロイ済みバッチジョブのデプロイ先は変更されません。
タグ
キーと値を追加して、ワークフローのタグを作成できます。
-
-
作成をクリックします。
ワークフロービルダーページにリダイレクトされます。
-
ワークフローの初期タスクを設定します。
ビルダーページにはデフォルトの初期タスクが含まれています。初期タスクをクリックし、タスクの編集パネルでパラメーターを設定してから、保存をクリックします。
ジョブ
パラメーター
説明
デプロイメント
現在の名前空間からデプロイ済みのバッチジョブのみを選択できます。あいまい検索がサポートされています。
タスク名
現在のワークフロー内のタスクの名前です。
上流タスク
現在のタスクの上流依存関係です。現在のワークフロー内の他のタスクのみを選択できます。
説明初期タスクには上流依存関係がないため、上流タスクを選択することはできません。
失敗時のリトライ回数
失敗したタスクのリトライ試行回数です。デフォルトでは、この値はワークフローのリトライ回数から継承されます。指定した場合、タスクレベルの設定が優先されます。
サブスクリプション
ステータスのサブスクリプションポリシーと通知メールを設定します。開始および失敗のステータスをサブスクライブできます。
タイムアウト
タスクの最大実行時間です。タスクがこの時間を超えると失敗します。
リソースキュー
タスクのデプロイターゲットです。詳細については、「リソースキューの管理」を参照してください。指定しない場合、ワークフローに設定されたリソースキューが使用されます。
説明この設定は、対応するデプロイ済みバッチジョブのデプロイターゲットを変更しません。
タグ
キーと値を追加して、ワークフロータスクのタグを作成できます。
マテリアライズドテーブル
パラメーター
説明
マテリアライズドテーブル
VVR 11.0 以降で作成され、ストリーミングリフレッシュモードを使用するパーティション分割マテリアライズドテーブルのみを選択できます。
タスク名
現在のワークフロー内のタスクの名前です。
時間パーティション
-
パーティションフィールド:マテリアライズドテーブルの時間パーティションフィールドです。
-
パーティション形式:例:
yyyyMMdd。
リソース設定
スケジュールされたバックフィルに使用するリソース量をカスタマイズできます。並列度については、自動割り当てを選択すると、システムが適切な値を決定します。
上流タスク
現在のタスクの上流依存関係です。現在のワークフロー内の他のタスクのみを選択できます。
説明-
初期タスクには上流依存関係がないため、上流タスクを選択することはできません。
-
マテリアライズドテーブルタスクを作成すると、データリネージに基づいて下流タスクが自動的に推論されます。
失敗時の再試行回数
失敗したタスクの再試行回数です。デフォルトでは、この値はワークフローの再試行回数から継承されます。指定した場合、タスクレベルの設定が優先されます。
サブスクリプション
ステータスサブスクリプションポリシーと通知メールを設定します。開始および失敗ステータスをサブスクライブできます。
タイムアウト
タスクの最大実行時間。タスクがこの時間を超えると失敗します。
リソースキュー
タスクのデプロイ先。詳細については、「リソースキューの管理」を参照してください。指定しない場合、ワークフローに設定されているリソースキューが使用されます。
説明この設定は、対応するデプロイ済みマテリアライズドテーブルのデプロイ先を変更するものではありません。
タグ
キーと値を追加して、ワークフロータスクのタグを作成できます。
説明-
マテリアライズドテーブルタスクを作成すると、ダイアログボックスにテーブルのラインージに基づいてダウンストリームタスクが提案されます。目的のタスクを選択するだけで設定が完了します。
-
ダウンストリームタスクも同じ制限を満たす必要があります。VVR 11.0 以降で作成され、ストリーミング更新モードを使用し、鮮度が 30 分未満のパーティション分割されたマテリアライズドテーブルのみを選択できます。
-
-
(オプション) ページ下部のタスクの追加をクリックして、タスクを追加します。
-
ワークフロー設定を保存します。
-
タスクエディターページの右上隅で、保存をクリックします。
-
表示されるダイアログボックスで、OKをクリックします。
-
ワークフローの実行
ワークフローの実行ごとにワークフローインスタンスが生成され、ワークフロー詳細ページの概要タブに表示されます。
-
手動トリガー:ワークフローをすぐに 1 回実行します。テストやオンデマンド処理に便利です。
対象ワークフローの操作列で、実行をクリックします。表示されるダイアログボックスで、手動トリガーを選択し、OKをクリックします。各操作により、ワークフローが 1 回実行されます。
-
定期スケジューリング:有効にすると、ワークフローはスケジュールされた時刻に自動的に実行されます。
ワークフローをスケジュールされた時刻に実行するには、対象ワークフローのステータスを有効にする必要があります。
過去データのバックフィルや、特定の期間における特定パーティションのデータ再処理を行う場合は、データバックフィル機能を使用してください。
データバックフィル
データバックフィルは、特定の時間範囲内のデータを補充または更新する機能です。一般的なユースケースには、アップストリームソースからの過去データの再処理、ディメンションテーブルの修正、新しい統合のためのデータバックポピュレーションなどがあります。
データバックフィルの実行
-
対象ワークスペースの操作列で、コンソールをクリックします。
-
左側のナビゲーションウィンドウで、を選択します。
-
対象ワークフローの操作列で、実行をクリックします。
-
実行ダイアログボックスで、スケジューリングタイプとしてバックフィルを選択し、以下の情報を設定します。
パラメーター
説明
時間範囲
データバックフィルの時間範囲を指定します。この範囲はワークフローの時間変数に渡され、対応するパーティションのデータ更新をトリガーします。
リソースキュー
データバックフィルタスクを実行する対象キューです。デフォルトは
default-queueです。 -
OK をクリックします。
データバックフィルインスタンスの管理
データバックフィルインスタンスは、ワークフローインスタンスと同じ方法で管理されます。詳細については、「ワークフローインスタンスとタスクインスタンスの管理」を参照してください。データバックフィルインスタンスを表示するには、以下の手順を実行します。
対象のワークフロー名をクリックして、そのインスタンスページを開きます。
概要 タブでは、対応するデータバックフィルインスタンスとその実行時間およびステータスを確認できます。
ワークフローのステータス
ステータス 列には、特定のワークフローの全インスタンスの状態が要約されて表示されます。たとえば、ワークフローが 5 日間毎日実行される場合、ステータス 列には、5 つのインスタンスのうち各状態 (成功や失敗など) にあるインスタンスの数が表示されます。
|
色 |
ステータス |
|
紫 |
保留中 |
|
青 |
実行中 |
|
緑 |
成功 |
|
赤 |
失敗 |
ワークフローの編集
-
対象のワークスペースの操作列で、コンソールをクリックします。
-
左側のナビゲーションウィンドウで、ワークフローをクリックします。
-
対象のワークフローの操作列で、ワークフローの編集をクリックします。
パラメーターの説明については、「ワークフローの作成」を参照してください。
説明ワークフローを編集するには、そのステータスがオフである必要があります。
関連トピック
-
DataWorks で Flink SQL バッチタスクをスケジュールするには、「Flink SQL Batch ノード」および「ノードのスケジューリング設定」を参照してください。
-
ワークフローの基本概念の詳細については、「ワークフロー (パブリックプレビュー)」を参照してください。
-
ワークフローインスタンス、タスクログなどを表示するには、「ワークフローインスタンスとタスクインスタンスの管理」を参照してください。
-
リソースキューを追加してリソースを分離および管理できます。詳細については、「リソースキューの管理」を参照してください。
-
バッチジョブ (SQL、JAR、Python) をデプロイするには、「ジョブのデプロイ」を参照してください。