Data Fusion:ランタイム引数をあるパイプラインから別のパイプラインに渡す

Aug 20 2020

business_date:$ {logicalStartTime(yyyy-MM-dd)}という名前空間に実行時引数を設定しています。私は自分のパイプラインでこの引数を使用しており、他のパイプラインでも同じ引数を使用したいと考えています。連続して多くのパイプラインがあり、最初のパイプラインで計算された後、パイプライン全体で値が同じになるようにします。値が「2020-08-2020:14:11」として計算され、パイプライン1が成功すると、この引数をパイプライン2に渡しますが、この引数は名前空間レベルで定義されているため、pipeline2の開始時にオーバーライドされます。

この値が再度計算されないようにするにはどうすればよいですか?

回答

1 Juls Aug 21 2020 at 18:53

以前にコメントしたように、あるパイプラインを設定して別のパイプラインをトリガーすることができます。最初のパイプラインでランタイム変数を設定でき、この変数はトリガーされたパイプラインで設定されます。次の手順に従って、インバウンドトリガーを作成できます。

  1. パイプラインを作成したら、実行する最後のパイプラインを選択します。私の場合、DataFusionQuickstart2パイプラインがあります。

  1. パイプラインアプリケーションの左側で、[インバウンドトリガー]-> [パイプライントリガーの設定]をクリックすると、トリガーできるパイプが表示されます。DataFusionQuickstartからDataFusionQuickstart2パイプラインをトリガーするイベントを確認して有効にします。

  1. 以前のパイプラインDataFusionQuickstarを見ると、アウトバウンドトリガーオプション(右側)に、DataFusionQuickstarによってトリガーされるパイプラインが表示されます

  1. 最後に、ランタイム引数を設定します。

追加情報

この投稿では、パイプラインのランタイム引数を設定する方法が3つあると述べました。

  1. 引数セッタープラグイン(ファイル内のその値を最初のパイプラインに書き留めることができます。後続のすべてのパイプラインで、そのファイルを読み取るためのパラメーターを作成します。)
  2. パイプラインを開始するときにランタイム引数を渡す(上記のもの)
  3. プリファレンスの設定(CDAPインスタンス、名前空間、アプリケーション、プログラムレベルなど、システムのさまざまなレベルで構成情報を保存する機能を提供します。)
adiideas Sep 02 2020 at 11:17

その値を最初のパイプラインのファイルに書き留めることができます。以降のすべてのパイプラインで、そのファイルを読み取るためのパラメーターを作成します。そうすれば、目的を達成する必要があります。

adiideas Oct 29 2020 at 07:16

@ Sudhir、PREFERENCESを探索できます。 https://cdap.atlassian.net/wiki/spaces/DOCS/pages/477561058/Preferences+HTTP+RESTful+API

名前空間レベルで変数を設定しました。結果に従って、使用されるたびに評価されます。

アプリケーションレベルで設定してみてください。そしてそれを次のパイプラインに渡します。その場合、その特定のアプリケーション(パイプライン)で一度だけ評価され、その後値が渡されると思います。

設定はプログラムレベルでも利用できます。