Assignment ノードは特別なノードです。 ノードにコードを記述して値を出力パラメーターに割り当て、ノードコンテキストと共にそれらを参照用の子ノードに渡すことができます。

Assignmentノードは、DataWorks Standard Edition 以降でのみ使用できます。

Assignment ノードの作成

  1. DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、ワークスペースをクリックします。 ワークスペースページでノードを作成するワークスペースを探し、アクション列の [データ分析] をクリックします。
  2. 表示される [データ分析] タブで、ポインターをアイコンの作成アイコンに移動し、[全般] > [Assignment ノード] をクリックします。

    または、左側のナビゲーションペインでワークフローをクリックし、[全般] を右クリックして、[作成] > [Assignment ノード] をクリックします。

  3. 表示される[ノードの作成] ダイアログボックスで、ノード名地域を設定します。
    ノード名は 1 文字から 128 文字である必要があります。
  4. [コミット] をクリックします。

割り当てロジックの値の書き込み

Assignment ノードには、output という名前の固定出力パラメーターがあります。 このパラメーターに関する情報は、プロパティタブのパラメーターセクションで見ることができます。 言語ドロップダウンリストから [ODPS SQL][SHELL]、または [Python] をクリックして、コードを記述して値をパラメーターに割り当てます。 出力パラメーターの値は、対応するコードの実行後に計算することができます。 1 つの Assignment ノードに 1 つの言語のみ指定することができます。出力パラメーターの定義
output パラメーターには次の制限があります。
  • 出力パラメーターの値は、コードの最終行の出力からのみ取得されます。
    • ODPS SQL の場合、最後の行の SELECT ステートメントの出力を使用します。
    • SHELL の場合、最後の行の ECHO ステートメントの出力を使用します。
    • Python の場合、最後の行の PRINT ステートメントの出力を使用します。
  • outputs パラメーターの渡された値のサイズは 2 MBに 制限されています。 割り当てステートメントの出力がこの制限を超える場合、割り当てノードは実行に失敗します。

Assignment ノードを親ノードとして使用する

Assignment ノードをノードの親ノードとして追加した後、ノードコンテキストで子ノードの入力パラメーターとして割り当てノードの出力を定義することができます。 子ノードのコードで定義された入力パラメーターを参照します。 このようにして、子ノードは割り当てノードの出力から特定の値を取得することができます。 詳細については、「コンテキストベースのパラメーター」をご参照ください。

Assignment ノードの例

  1. ワークフローの作成 詳細については、「ワークフローの作成」をご参照ください。
  2. 2 つのシェルノードと 4 つのAssignment ノードを作成します。 ワークフローダッシュボードで、次の図に示すように、ノード間に線を引いて依存関係を構成します。ノードの作成
  3. 割り当てノードを設定すると、出力パラメーターはデフォルトで自動的に追加されます。 Assignment ノードを実行した後、パラメーター値をプロパティタブのパラメーターセクションに表示することができます。Assignment ノードの設定
  4. 親ノードの outputs パラメーターを子ノードの入力パラメーターとして定義します。入力パラメーターの定義

Assignment ノードの実行

上記の設定は、オペレーションセンターで遡及データを生成することで有効になりますが、テスト中には有効になりません。
  1. ワークフローでノードを設定した後、スケジューリングのためにノードをコミットします。 一般に、ノードインスタンスは生成され、翌日に実行されます。
  2. インスタンスの実行中に、有向非巡回グラフ (DAG) のノードを右クリックして、 [ノードの詳細を表示する] をクリックして、入力および出力パラメーターを表示します。
  3. 実行時ログでは、finalResult でコードの最終出力を表示することができます。出力の表示

概要

outputs パラメーターの値は、コードの最終行の出力です。
本ページでは、ODPS SQL、SHELL、および Python を使用して割り当てノードのコードを記述し、割り当てノードによって生成される配列をシェルノードの input パラメーターとして定義します。
  • ODPS SQL:Assignment ノードの出力は、1 次元または 2 次元の配列です。
    この例では、クエリの結果は 2 次元配列です。
    2,this is name6
    1,this is name5
    次の図は、シェルノードの出力コードを示しています。出力コード
    次の図は、シェルノードの出力を示しています。Output
  • SHELL:Assignment ノードの出力は 1 次元配列です。
    次の図は、シェルノードの出力コードを示しています。出力コード
    次の図は、シェルノードの出力を示しています。Output
  • Python:Assignment ノードの出力は 1 次元配列です。
    次の図は、シェルノードの出力コードを示しています。出力コード
    次の図は、シェルノードの出力を示しています。Output