タスクフロー
タスクフロー (Task Flow) は TiDB Cloud Lake に組み込まれたワークフローオーケストレーション機能です。これにより、SQL ベースのデータパイプラインを有向非巡回グラフ (DAG) として定義、スケジュール設定、監視できます。グラフ内の各ノードは Task であり、それぞれ独自のスケジュール、依存関係、実行設定を持つ SQL ステートメントです。Flow は複数のタスクをまとめ、自動的に実行順序を管理します。
概要
タスクフローは、従来の Task List をより強力なモデルに置き換えるものです。
主要な概念
Task
Task は最小の作業単位です。以下を含みます。
- 実行する SQL ステートメント
- スケジュール(手動、間隔、または cron)
- 他のタスクまたはストリームへの任意の依存関係
- 高度な設定(失敗しきい値、結果キャッシュ、最小実行間隔)
Flow
Flow は、依存関係を持つタスクの名前付きコレクションです。TiDB Cloud Lake は DAG 構造に基づいて実行順序を自動的に決定します。Flow には以下があります。
- 名前と割り当てられた Warehouse
- 定義済みの依存関係を持つ 1 つ以上のタスク
- ライフサイクル: Created → Started → Suspended → Resumed → Dropped
DAG (Directed Acyclic Graph)
タスク間の依存関係グラフです。Task B が Task A に依存している場合、TiDB Cloud Lake は最初に Task A を実行し、Task A が成功した後にのみ Task B をトリガーします。循環は許可されません。
はじめに
タスクフローの作成
- 左側のサイドバーで Data > Task & Flows に移動します。
- 右上隅の Create をクリックします。
- Flow モーダルで、以下を行います。
- Flow Name を入力します。
- タスクを実行する Warehouse を選択します。
- Add Task to Flow をクリックして、最初のタスクを追加します。
Task の設定
タスクフォームで、以下を入力します。
Basic Settings
Dependencies
Advanced Options
- Save をクリックして、タスクを Flow に追加します。
- 繰り返してさらにタスクを追加します。タスク間の依存関係を定義するには Require Tasks を使用します。
- Publish をクリックして Flow を作成します。
Flow の可視化
Flow を作成した後、その名前をクリックして詳細ページを開きます。Latest Run タブに DAG の可視化が表示されます。
各ノードには以下が表示されます。
- タスク名
- 最新の実行ステータス(色分け)
- 実行時間範囲
- エラーメッセージ(失敗時)
ステータスの色:
Flow の管理
Flow の操作
Task & Flows リストでは、各行に次の項目を含むアクションメニューがあります。
一括操作
チェックボックスを使用して複数の Flow を選択し、一括操作メニューを使用して以下を実行できます。
- 選択したすべての Flow を一時停止
- 選択したすべての Flow を再開
- 選択したすべての Flow を削除
実行の監視
Runs History
詳細ページの Runs History をクリックすると、過去のすべての実行を確認できます。
失敗またはキャンセルされた実行にはエラーツールチップが表示されます。エラーをクリックすると、詳細を表示したり、サポートチケットを作成したりできます。
グローバル Task History
Data → Task History に移動すると、組織内のすべての Flow にまたがる実行を確認できます。以下でフィルタできます。
- タスク名(複数選択)
- 時間範囲(過去 2 日、過去 3 日)
バージョン管理
Flow への変更を Publish するたびに、TiDB Cloud Lake は新しいバージョンを保存します。バージョン履歴にアクセスするには、以下を実行します。
- Flow の詳細ページを開きます。
- Versions History タブをクリックします。
バージョンの比較
- チェックボックスを使用して 2 つのバージョンを選択します。
- Compare をクリックします。
- 2 つのバージョン間の変更点を左右に並べて表示する SQL diff ドロワーが開きます。
以前のバージョンへの復元
- リストからバージョンを選択します。
- Revert をクリックします。
- ダイアログで操作を確認します。
Flow は選択したバージョンに復元され、新しいバージョンエントリが作成されます。
スケジュール設定リファレンス
スケジュールタイプ
Manual: タスクは Execute Once でトリガーされた場合にのみ実行されます。自動スケジュールはありません。
Interval: N 分または N 時間ごとに実行します。例: EVERY 5 MINUTE。
Cron: タイムゾーンをサポートする標準的な cron 式です。例: 0 9 * * 1-5(平日の午前 9 時)。
ストリームベースのトリガー
タスクに Require Stream 依存関係がある場合、指定されたストリームに未消費データがあるときにのみ実行されます。これは、テーブル変更(CDC)に反応するイベント駆動型パイプラインの構築に役立ちます。
ベストプラクティス
- シンプルに始める: 依存関係を追加する前に、まず単一タスクの Flow を作成して SQL を検証します。
- CDC パイプラインにはストリームを使用する: ストリームトリガーと
MERGE INTO文を組み合わせて、増分データパイプラインを構築します。 - 失敗しきい値を設定する: Suspend Task After Num Failures を使用して、無制限な再試行による Warehouse クレジットの消費を防ぎます。
- 結果キャッシュを有効にする: 同じデータを繰り返しクエリするタスクでは、Query Result Cache を有効にしてコンピュートコストを削減します。
- バージョン履歴を活用する: 大きな変更を加える前に、必要に応じて元に戻せるよう現在のバージョン番号を控えておきます。
- ワークロードごとに Warehouse を分ける: より重い変換タスクは大きな Warehouse に割り当て、軽量なタスクは小さな Warehouse に割り当てます。