このトピックでは、タスクオーケストレーションで使用される変数について説明します。
変数の概要
変数はタスクフロー内の動的値であり、システム変数、時間変数、非時間変数に分類されます。ノード内では、${varName} 構文を使用して任意の変数を参照できます。
システム変数
システム変数は、現在のタスクフロー ID やタスクフローの実行時刻などの事前定義された値です。
カスタム変数がシステム変数と同じ名前を持つ場合、その値はシステム変数の値をオーバーライドし、カスタム変数の方が高い優先度を持ちます。
時間変数
-
タスクフロー変数(グローバル変数):タスクフロー変数は、データタイムスタンプに時間オフセットを適用して計算されます。デフォルトでは、データタイムスタンプは実行時刻の前日です。グローバル変数であるため、現在のタスクフロー内のすべてのノードで利用可能です。
説明タスクフロー内の任意のノードでタスクフロー変数を構成できます。構成内容は自動的に他のすべてのノードに同期されます。
-
ノード変数:組み込みの
bizdate(T-1)変数に時間オフセットを適用して作成される時間変数です。ノード変数のスコープは、その変数を定義したノードに限定されます。たとえば、現在の日付が 2023 年 8 月 22 日で、+1 日の時間オフセットを適用すると、変数の値は 2023 年 8 月 23 日になります。
非時間変数
-
タスクフロー定数(グローバル変数):タスクフロー定数は固定値であり、現在のタスクフロー内のすべてのノードで使用できます。
-
入力変数:システムが自動的に入力変数を設定します。現在のノードの SQL ステートメント内で ${var_name} 構文を使用するか、条件付き分岐ノードの条件変数として入力変数を参照できます。入力変数には以下が含まれます。
-
出力変数:現在のノードで出力変数を定義し、値を割り当てます。下流ノードはその後、その変数にアクセスおよび参照できます。
たとえば、スクリプトノードで出力変数を構成すると、下流ノードの SQL ステートメントで参照できます。
-
Single Instance SQL ノードからの出力変数:Single Instance SQL ノードを使用して、SQL クエリから結果セットを定義できます。この結果セットは二次元マトリックスを形成します。変数定義時に、行または列から単一の要素を抽出するか、すべての値を連結できます。
-
スクリプト出力変数:スクリプトの最終行の出力が
{ key1: value1, key2: value2, … }形式の JSON オブジェクトであり、かつ値が String 型の場合、スクリプトタスクは自動的に JSON のキーと値のペアを解析します。これにより、key という名前の変数が作成され、変数key の値が対応する値に設定されます。${key}としてこの変数を参照できます。たとえば、スクリプトの最終行が
echo {"hello": "world"}の場合、スクリプトタスクは hello という名前の変数を作成し、hello の値は world になります。
時間変数の構成
|
パラメーター |
説明 |
|
変数名 |
カスタム変数の名前を入力します。 説明
構成済みの変数を削除するには、 |
|
変数ルール |
時間変数のルールを構成します。
説明
時間変数を構成後、SQL ステートメント内で |
時間フォーマット
次の表は、サポートされている時間フォーマット指定子について説明しています。
|
指定子 |
説明 |
入力例 |
出力例 |
|
紀元 |
|
Gyyyy |
AD 2021 |
|
年 |
|
yyyy |
2021 |
|
月 |
|
MM |
08 |
|
週 |
|
ww |
13 |
|
日 |
|
D |
360 |
|
曜日 |
|
e |
1 |
|
午前/午後 |
|
a |
AM |
|
時 |
|
HH |
10 |
|
分 |
|
m |
27 |
|
2 番目 |
|
ss |
08 |
|
タイムゾーン |
|
z |
UTC+08:00 |
複合時間フォーマットの例:
|
入力例 |
出力例 |
|
|
2021-08-12 |
|
|
20210801 |
|
|
11:05:21 |
|
|
20210812 11:05:21 |
システム変数
|
変数名 |
説明 |
例 |
|
sys.flow.start.timestamp |
実行時刻のタイムスタンプ。 |
2021-05-24T11:20:07.562+08:00 |
|
sys.flow.start.year |
実行時刻の年。 |
2021 |
|
sys.flow.start.month |
実行時刻の月。 |
5 |
|
sys.flow.start.day |
実行時刻の日。 |
24 |
|
sys.flow.start.hour |
実行時刻の時。 |
11 |
|
sys.flow.start.minute |
実行時刻の分。 |
20 |
|
sys.flow.start.second |
実行時刻の秒。 |
7 |
|
sys.flow.start.milliseconds |
ランタイムのミリ秒。 |
562 |
|
sys.flow.start.timezone |
実行時刻のタイムゾーン。 |
Asia/Shanghai |
|
sys.flow.biztime |
データタイムスタンプ。デフォルトでは、実行時刻の前日です。 |
1621740007562 |
|
sys.flow.name |
タスクフロー名。 |
dwd_activity_daily_pv |
|
sys.node.name |
ノード名。 |
Single Instance SQL-1 |
ステータス変数
|
変数名 |
説明 |
|
all_success |
すべての上流タスクが正常に実行されました。 |
|
all_failed |
すべての上流タスクが失敗しました。 |
|
one_success |
少なくとも 1 つの上流タスクが正常に実行されました。 |
|
one_failed |
少なくとも 1 つの上流タスクが失敗しました。 |
条件付き分岐ノードでステータス変数を使用して、特定の実行ステータスに基づいてタスクフローが後続のタスクを実行するかどうかを制御できます。
アイコンをクリックします。