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

Dataphin:変数の分類と割り当て

最終更新日:Feb 06, 2025

このトピックでは、Dataphin 内の変数の分類の概要と、日付と時刻の値をローカル変数に割り当てるプロセスについて詳しく説明します。

変数の分類の説明

Dataphin は、変数を次のように分類します。

変数の種類

説明

グローバル変数

グローバル変数は、Dataphin [計画]-[共通ビジネスロジック]-[グローバル変数] で事前定義および設定され、テナント内の任意のノードまたはコードでアクセスできます。システムのデフォルトのグローバル変数は、${bizdate} です。

説明
  • グローバル変数は、現在のバージョンでは同期タスクと互換性がありません (以前のバージョンではサポートされていました)。

  • グローバル変数の設定。具体的な操作については、「グローバル変数を作成する」をご参照ください。

スペース名変数

これらには、以下の計算タスクの例に示すように、${project name}${module name} が含まれます。

image.png

  1. ① でプロジェクト名またはモジュール名を取得します。

  2. ② のエディターで、${project name or module name} 構文を使用してプロジェクト名またはモジュール名を参照します。

  3. ③ の入力パラメーターは、システムによって自動的に識別されます。

説明

スペース名変数は、他の変数型に変換できません。

ローカル変数

ローカル変数は事前の宣言を必要としません。コード内で ${variable_name} を使用して、variable_name という名前のローカル変数を定義します。以下の例は、計算タスクでのこれを示しています。

image.png

変数名は、数字、文字、およびアンダースコアのみで構成する必要があります。グローバル変数用に予約されている dp_glb_ で始めることは避け、名前は 32 文字までに制限してください。

重要
  • variable_name がグローバル変数名と一致する場合、グローバル変数参照として扱われます。パラメーター設定でその種類をローカル変数に変更できます。

  • variable_name がプロジェクト名またはモジュール名と一致する場合は、自動的にスペース名変数と見なされます。

  • コードコンテンツ内で ${variable_name} が変数として扱われないようにするには、パラメータータイプ設定で 変数以外 として設定します。

  • ${variable_name} がノード間変数である場合は、パラメータータイプ設定で ノード間変数 を選択して、そのように設定します。

  • ローカル変数のパラメーター値を空に設定するには、[パラメーター値] をクリックし、次に [空に設定] を 1 回クリックします。

ノード間変数

ノード間変数は、先祖ノードから現在のオブジェクトノードに渡されるパラメーターであり、次のようなシナリオに適用できます。

  • 先祖ノード A が変数 ${var} を子孫ノード B に送信し、子孫ノード B が計算ロジックで ${var} を使用します。たとえば、金融では、物理テーブルに格納されている為替レートを Python ノードが読み取り、計算のためにダウンストリームノードに渡す場合があります。

  • 先祖ノード A が変数 ${var} を子孫ノード B に送信し、子孫ノード B が ${var} に基づいて実行ポリシーを決定します。たとえば、リモートサービスのステータスが「停止」の場合、ノード B はドライランを実行する可能性があり、A はステータスを変数として B に渡す必要があります。

重要
  • ノード間変数は、リアルタイムタスクではサポートされていません。

  • ノード間パラメーターを使用するノードのデータをバックフィルする場合は、パラメーターを提供する先祖ノードと現在のノードの両方のデータをバックフィルするようにしてください。

変数の割り当ての説明

日付と時刻の計算式

日付と時刻の値をローカル変数に割り当てるために、Dataphin は次のクイック日付計算演算子をサポートしています。

  • Dataphin では、2 つの日付と時刻の値の間の計算が可能です。

    • 業務日付 ${bizdate} の場合は、${(yyyyMMdd|yyyy/MM/dd|yyyy-MM-dd) (+|-) n} の形式を使用します。

    • 予想実行時間 (ノードタスクの開始時刻) の場合は、$[(yyyyMMddHHmmss|yyyy/MM/dd HH:mm:ss|yyyy-MM-dd HH:mm:ss) (+|-) n] を使用します。

  • 日付と時刻のコンポーネントの識別子:

    • : yyyy。

    • : 日レベルの粒度の場合は mm、分レベルの粒度の場合は MM (分 mm と区別するため大文字)。

    • : dd。

    • : HH。

    • : mm。

    • : ss。

  • 日付と時刻の計算の間隔単位は 1 日です。

    • 1 時間は 1/24、5 時間は 5/24 として表します。

    • 1 分は 1/1440 (1/24/60)、30 分は 30/1440 として表します。

参照例

現在の日付

業務日付 (T-1) に基づく設定

実際の値

予想実行時間 (T) に基づく設定

実際の値

2018-01-10

${yyyymmdd}

20180109

$[yyyymmdd]

20180110

2018-01-10

${yyyyMMdd}

20180109

$[yyyyMMdd]

20180110

2018-01-10

${yyyymmdd -1}

20180108

$[yyyymmdd -1]

20180109

2018-01-10

${yyyymmdd -7}

20180102

$[yyyymmdd -7]

20180103

2018-01-10

${yyyy-mm-dd}

2018-01-09

$[yyyy-mm-dd]

2018-01-10

2018-01-10

${yyyy-mm}

2018-01

$[yyyy-mm]

2018-01

2018-01-10

${yyyy-mm -1}

2017-12

$[yyyy-mm -1]

2017-12

2018-01-10

${yyyy}

2018

$[yyyy]

2018

2018-01-10

${yyyy+1}

2019

$[yyyy + 1]

2019

2018-01-10

${yyyy/MM/dd HH:mm:ss}

2018/01/09 00:00:00

$[yyyy/MM/dd HH:mm:ss]

2018/01/10 00:00:00

2018-01-10

${yyyy/MM/dd HH:mm:ss-1/24}

2018/01/08 23:00:00

$[HH:mm:ss-5/24/60]

23:55:00