すべてのプロダクト
Search
ドキュメントセンター

Data Management:変数

最終更新日:Aug 05, 2024

このトピックでは、タスクオーケストレーションに関連する変数について説明します。

概要

変数は、システム変数、時間変数、および非時間変数を含む、タスクフロー内の動的な値である。 変数は、ノードで ${varName} の形式で動的に参照できます。

システム変数

システム変数は、タスクフローのIDやタスクフローが実行される時点など、システムで事前定義された変数です。

説明

システム変数以外の変数をまとめてカスタム変数と呼びます。 カスタム変数の名前は一意である必要があります。 カスタム変数の優先度は、システム変数の優先度よりも高くなります。 カスタム変数がシステム変数と同じ名前を共有する場合、カスタム変数の値はシステム変数の値を上書きします。

時間変数

  • タスクフロー変数 (グローバル変数): タスクフロー変数は、データタイムスタンプに基づいてオフセットされ、現在のタスクフローのすべてのノードで使用できます。 デフォルトでは、データのタイムスタンプは、タスクフローが実行された日の前日です。

    説明

    タスクフローのいずれかのノードでタスクフロー変数を設定できます。 その後、タスクフロー変数の設定は、タスクフロー内の他のノードに自動的に同期されます。

  • ノード変数: ノード変数は、組み込みの時間変数bizdate(T-1) に基づいてオフセットされます。 ノード変数は、現在のノードでのみ使用できます。

    たとえば、現在の日付が2023年8月22日であり、ノード変数のオフセットが + 1日に設定されている場合、ノード変数は2023年8月23日を示します。

非時間変数

  • タスクフロー定数 (グローバル変数): タスクフロー定数は固定値であり、現在のタスクフローのすべてのノードで使用できます。

  • 入力変数: 入力変数は、データ管理 (DMS) によって自動的に取得されます。 ${var_name} を使用して、現在のノードのSQL文の入力変数を参照できます。 入力変数を条件付き分岐ノードのフィルタ条件として使用することもできます。 次の変数は入力変数と見なされます。

    • 上流変数: 上流変数は上流ノードからの出力変数です。

    • ステータス変数: 詳細については、このトピックの「ステータス変数」をご参照ください。

    • システム変数: 詳細については、このトピックの「システム変数」をご参照ください。

  • 出力変数: 出力変数は定義され、その値は現在のノードに割り当てられます。 出力変数は、下流ノードによってアクセスおよび参照できます。

    たとえば、Scriptノードで出力変数を設定する場合、出力変数は下流ノードのSQL文で参照できます。

  • シングルインスタンスSQLノードで割り当てられた出力変数: シングルインスタンスSQLノードを使用して、SQLステートメントの結果セットを定義できます。 結果セットは、2D行列として使用することができる。 変数の定義プロセス中に、行列から要素を取り出したり、行ベクトルiと列ベクトルjを使用して文字ベースの連結を実行したりできます。

  • スクリプト出力変数: スクリプトファイルの最終行がスクリプトノードの { key1: value1, key2: value2, … } 形式のJSON文字列である場合、スクリプトタスクはJSON文字列のキーと値のペアを解析して出力変数を取得します。 各変数について、名前はキーであり、値はキーの値である。 下流ノードのSQL文で ${key} 形式のスクリプト出力変数を参照できます。

    たとえば、スクリプトファイルの最後の行がecho {"hello": "world"} の場合、スクリプトタスクはキーと値のペアを解析して、名前がhello、値がworldの出力変数を取得します。

時間変数の設定

パラメーター

説明

変数名

カスタム時間変数の名前。

説明

設定済みの変数を削除するには、[変数名] フィールドの右側にある删除-变量アイコンをクリックします。

変数ルール

カスタム時間変数の時間形式と時間オフセット設定。

  • Time Format: 時間変数の時間形式。 詳細については、このトピックの「時間形式」をご参照ください。

  • 時間オフセット: 時間変数は、現在の日付の前日であるデータタイムスタンプに基づいてオフセットされます。 つまり、カスタム時間変数の値は、指定された時間オフセットがデータタイムスタンプに基づいてポイントする日付を示します。

    たとえば、6_month_agoという名前の変数をyyyy-MM-dd形式で作成し、オフセットを「-6 Month」に設定したとします。 この場合、現在の日付が2021年8月12日である場合、変数 ${6_month_ago} の値は、2021年2月11日を示す2021-02-11です。

説明

時間変数を設定した後、現在のノードのSQL文で ${var_name} 形式の変数を参照できます。 [プレビュー] をクリックして、時間変数の値を表示することもできます。

時間形式

次の表に、カスタム変数の時間形式を定義するために使用できる時間変数を示します。

時間変数

説明

サンプル形式

サンプル値

安野ドミニ (AD)

GはADを示す。

Gyyyy

AD 2021

  • yまたはyyyy: その日の年。

  • yy: 今年の最後の2桁。

  • Y: 週の最後の日の年。 週の最後の日は日曜日です。

yyyy

2021

M: 年の月。 Mの有効値: [1,12] 。 MMの有効な値: [01,12]

MM

08

  • w: 今年の週。 wの有効値: [1,52] 。 wwの有効値: [01,52] 。

  • W: 月の週。 有効な値: [1,5] 。

ww

13

  • D: その年の日。 Dの有効値: [1,365] 。 DDの有効値: [01,365] 。 DDDの有効値: [001,365] 。

  • d: 月の日。 dの有効値: [1,31] 。 dd: [01,31] の有効値。

D

360

曜日

  • E: 曜日。 有効な値: 月曜日から日曜日。

  • e: 週の日の数。 有効な値: [1,7] 。 1 は月曜日を表します。

    説明

    日曜日を週の最初の日としてカウントするには、オフセットを「 + 1日」に設定します。

e

1

Ante meridiem (AM) またはpost meridiem (PM)

a: 時刻が正午の前か後かを示します。 時刻が00:00 ~ 11:59の範囲の場合、戻り値はAMです。時刻が12:00 ~ 23:59の範囲の場合、戻り値はPMです。

a

AM

時間

  • H: その日の時間。 0の値は、その日の最初の時間を示します。 Hの有効値: [0,23] 。 HHの有効値: [00,23] 。

  • h: 半日の時間。 値1は、半日の最初の1時間を示す。 hの有効値: [1,12] 。 hhの有効値: [01,12] 。

  • K: 半日の時間。 0の値は、半日の最初の1時間を示す。 Kの有効値: [0,11] 。 KKの有効値: [00,11] 。

  • k: その日の時間。 値1は、その日の最初の1時間を示します。 kの有効値: [1,24] 。 kkの有効値: [01,24] 。

HH

10

m: 時間の分。 mの有効値: [0,59] 。 mmの有効値: [00,59] 。

m

27

  • s: 分の秒。

  • S: 分のミリ秒。

ss

08

タイムゾーン

z: タイムゾーン。

z

UTC + 08:00

次の表に、複数の時間変数を使用するサンプルの時間形式を示します。

サンプル形式

サンプル値

yyyy-MM-dd

2021-08-12

yyyyMM01

20210801

HH:mm:ss

11:05:21

yyyyMMdd HH:mm:ss

20210812 11:05:21

システム変数

変数

説明

sys.flow.start.timestamp

タスクフローの実行時に生成されるタイムスタンプ。

2021-05-24T11:20:07.562 + 08:00

sys.flow.start.year

タスクフローが実行される年。

2021

sys.flow.start.mo nth

タスクフローが実行される年の月。

5

sys.flow.start.day

タスクフローが実行される月の日。

24

sys.flow.start.hour

タスクフローが実行される日の時間。

11

sys.flow.start.minute

タスクフローが実行される時間の分。

20

sys.flow.start.second

タスクフローが実行される分の秒。

7

sys.flow.start.mil lisecond

タスクフローが実行される秒のミリ秒。

562

sys.flow.start.timezone

タイムゾーン。

Asia/Shanghai

sys.flow.biztime

データのタイムスタンプ。 デフォルトでは、データのタイムスタンプは、タスクフローが実行された日の前日です。

1621740007562

sys.flow.name

タスクフローの名前。

dwd_activityDailyPV

sys.node.name

タスクフロー内のノードの名前。

単一インスタンスSQL-1

ステータス変数

変数

説明

all_success

すべてのタスクが実行されます。

all_failed

すべてのタスクの実行に失敗します。

one_success

現在のタスクフローのタスクが実行されます。

one_failed

現在のタスクフローのタスクの実行に失敗しました。

説明

条件付き分岐ノードのステータス変数を使用して、タスクフローで条件付き評価を行うことができます。 タスクフロー内の後続のタスクは、条件付き分岐ノードが指定された条件を満たす場合にのみ実行できます。