パイプラインのグローバル変数を使用すると、パラメーターの繰り返し設定を減らすことができます。グローバル変数は、オンラインパイプラインと DataWorks のオフラインスケジューリングパイプラインの両方で一般的に使用されます。オンラインパイプラインでは、複数のコンポーネントでパラメーターを共有できます。DataWorks のオフラインスケジューリングでは、スケジューリングパラメーターを動的に上書きするために使用され、パイプラインの柔軟性と効率が向上します。
操作手順
-
グローバル変数を構成します。
既存のパイプラインを開き、キャンバスの空白部分をクリックして、右側のパネルでグローバル変数を作成します。
グローバル変数を参照するには、
${variable_name}というフォーマットを使用します。変数名は 1~20 文字で、先頭は英字である必要があります。また、英字、アンダースコア、数字のみを使用できます。オフラインスケジューリングでグローバル変数を使用する場合、DataWorks で同じ名前のスケジューリングパラメーターを定義する必要があります。PAI Designer で構成した値は、オンラインでの実験実行にのみ適用されます。 -
グローバル変数を使用するパラメーターフィールドに、
${variable_name}と入力します。
例 1:オンラインパイプライン
この例では、グローバル変数 para1 を設定して、テーブルの列 status の名前を ifHealth に変更し、SQL スクリプトで参照する方法を説明します。
-
パイプラインを作成した後、最初の 2 つのノードのみを残し、他のノードは削除します。
-
キャンバスの空白部分をクリックし、右側のパネルでグローバル変数を作成します。
グローバル変数名を
para1に、その値をifHealthに設定します。 -
グローバル変数を使用します。
SQL スクリプト コンポーネントを変更し、
${para1}を使用して変数を参照します。SQL Script-1 コンポーネントの SQL エディターで、SELECT 文の最後に
${para1}を出力列のエイリアスとして使用します。FROM 句では、${t1}を使用して Read Table-1 コンポーネントからの入力ソースを参照します。また、[CREATE TABLE 文を自動的に追加] チェックボックスをオンにします。このオプションを選択した場合、最後の文は SELECT 文である必要があります。 -
パイプラインを実行します。
実行が完了したら、SQL スクリプト コンポーネントを右クリックし、[データの表示] > [SQL スクリプトの出力] を選択します。列名
statusがifHealthに変更されていることを確認します。
例 2:DataWorks のオフラインスケジューリング
この例では、グローバル変数 gDate を使用して、パイプライン内の特定の日付のデータをフィルター処理する方法を説明します。その後、DataWorks で対応するスケジューリングパラメーターを構成し、パイプラインを定期実行ジョブとして実行します。
-
テストデータテーブルを作成します。
この例では、MaxCompute コンソールで dwtest という名前のテーブルを作成します。詳細については、「SQL リファレンス」をご参照ください。
dwtest テーブルには、
t1(数値、例:1.0、0.0、1.2、0.1)、t2(数値、例:1.1、1.0、0.0、0.1)、label(文字列、例:A、B、C、D、E、F)、ds(日付パーティション、例:20190519、20190520) の 4 つの列があります。このテーブルには 10 行のテストデータが含まれています。 -
パイプラインを作成し、グローバル変数を構成します。
-
キャンバスの空白部分をクリックし、右側のパネルで
gDateという名前のグローバル変数を作成します。変数の値を
20190520に設定します。 -
パイプラインコンポーネントを構成します。

-
テーブル読み込み:[テーブル名] を dwtest テーブルに設定します。
-
SQL スクリプト:クエリで
gDateグローバル変数を使用します。select * from ${t1} where ds=${gDate}
-
-
-
パイプラインを実行します。
実行が完了したら、SQL スクリプト コンポーネントを右クリックし、[データの表示] > [SQL スクリプトの出力] を選択します。出力データは、gDate グローバル変数の値に基づいてフィルター処理されます。
クエリ結果では、ds 列の値が
20190520となり、gDate グローバル変数の値と一致します。これにより、グローバル変数が正常に渡されたことが確認できます。 -
キャンバスの左上隅にある [定期スケジューリング] をクリックし、次に [スケジューリングノードの作成] をクリックします。DataWorks にリダイレクトされ、オフラインスケジューリングを構成します。[ノードの作成] ダイアログボックスで、ノード名を指定し、[確認] をクリックします。
-
PAI Designer の実験を選択し、右側のパネルで [プロパティ] をクリックします。構成の詳細については、「ノードスケジューリングの構成」をご参照ください。
この例では、次のパラメーターを構成し、その他はデフォルト設定のままにします:
-
スケジューリングパラメーター:
gDateという名前のスケジューリングパラメーターを追加し、その値を$bizdateに設定します。 -
スケジュール:再実行プロパティで、前の実行結果に関係なくノードを再実行できるように指定します。
-
依存関係:上流依存関係をワークスペースのルートノードに設定します。
-
-
ツールバーの
アイコンと
アイコンをクリックします。画面の指示に従ってノードを保存し、送信します。 -
ページの上部にある [オペレーションセンター] をクリックして、タスクの実行ステータスと操作ログを表示します。
データのバックフィルやトライアルパイプラインの実行も可能です。詳細については、「自動トリガータスクの管理」をご参照ください。