ノード間パラメーター機能を使用すると、ノード間でメッセージを渡すことができます。SQL、Shell、Python などの出力ノードはパラメーターを出力でき、入力ノードはこれらのパラメーターを受け取って使用できます。このプロセスにより、パブリックストレージを介してメッセージを渡す際の複雑さと非効率性が解消されます。このトピックでは、ノード間出力パラメーターに値を割り当てる方法について説明します。
背景
Dataphin では、ノードの依存関係は有向非循環グラフ (DAG) を形成します。以前は、DAG 内のノードはステータス情報しか渡すことができませんでした。これは、先祖ノードの実行ステータスがその子孫ノードに影響を与えることを意味していました。システムはノードのコンテンツを解釈したり、このコンテンツを DAG を介して子孫ノードに渡したりすることはできませんでした。子孫ノードが先祖ノードの出力を使用する必要がある場合、先祖ノードは出力をパブリックストレージに書き込む必要がありました。その後、子孫ノードはパブリックストレージから出力を読み取る必要がありました。データテーブルは、最も一般的なパブリックストレージの場所でした。しかし、パブリックストレージを介してメッセージを渡すことには、次の欠点があります。
パブリックストレージへの書き込みと読み取りのプロセスは複雑であり、一部の種類のノードではこれらの操作を実行できません。たとえば、論理テーブルノードは、そのコンピューティングロジックがフィールドコンピューティングロジックによって完全に決定されるため、パブリックストレージからメッセージを独立して読み取ることはできません。
パブリックストレージへのメッセージの書き込みと読み取りは非効率です。複数の子孫ノードが同じメッセージを使用する必要がある場合、各ノードは独立してメッセージを読み取る必要があります。さらに、メッセージのストレージの場所またはフォーマットが変更された場合、すべての子孫ノードは読み取りメソッドを調整する必要があります。
この転送方法は、渡されるメッセージが通常非常に小さいため、特に煩雑です。
これらの問題を解決するために、Dataphin はノード間でメッセージを渡すためのノード間パラメーターを導入しました。
出力ノード:メッセージを渡すためにパラメーターを出力するノード。パラメーター出力は、Shell、Python、および SQL コンピュートノードのみがサポートしています。例としては、MaxCompute SQL、Hive SQL、AnalyticDB for PostgreSQL SQL などがあります。
入力ノード:パラメーターを受け取って使用するノード。1 つの出力ノードは複数の入力ノードに接続できます。出力ノードの直接の子孫ノードは、その出力ノードのノード間パラメーターを参照できます。
ノード間出力パラメーターへの値の割り当て手順
ノード間出力パラメーターを宣言した後、コードで値を割り当てることができます。詳細については、「ノード間パラメーターのベストプラクティス」をご参照ください。
Shell、Python、および SQL コンピュートノードのみがノード間出力パラメーターを定義できます。
ノード間変数パラメーターは、統合ノード、コンピュートノード、および標準または階層的な論理ディメンションテーブルとファクトテーブルの入力パラメーターとして使用できます。
タスク タイプ | 割り当て文 | 右クリック メニュー ショートカット |
Shell タスク | コード内で、次のコマンドを使用してノード間パラメーターに値を割り当てます:
例:
重要
| エディターで右クリックし、[ノード間パラメーターの設定] を選択します。 |
Python タスク | コード内で、次のコマンドを使用してノード間パラメーターに値を割り当てます:
例:
重要
| エディターで右クリックし、[ノード間パラメーターの設定] を選択します。 |
SQL ジョブ |
| エディターで右クリックし、[ノード間パラメーターの設定] を選択します。 説明 AnalyticDB for PostgreSQL SQL ノードは、右クリックメニューのショートカットをサポートしていません。コマンドを手動で入力してください。 |