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

E-MapReduce:パラメーター

最終更新日:Apr 15, 2025

E-MapReduce (EMR) ワークフローは、組み込み時間パラメーター、タスクパラメーター (ローカルパラメーター)、ワークフローパラメーター (グローバルパラメーター)、およびプロジェクトパラメーターを提供します。EMR ワークフローは、パラメーター受け渡し機能もサポートしています。

パラメーターの設定

組み込み時間パラメーター

パラメーターの定義

組み込み時間パラメーターを定義する必要はありません。タスクで直接使用できます。

パラメーターの使用

EMR ワークフローは、$[...] 形式の組み込み時間パラメーターをサポートしています。$[yyyyMMddHHmmss] 形式の組み込み時間パラメーターは、$[yyyyMMdd]$[HHmmss]$[yyyy-MM-dd] など、複数の形式に分割して再結合できます。組み込み時間パラメーターを変更するには、次のいずれかの方法を使用します。

  • add_months() 関数を使用します。この関数は、月を加算または減算するために使用されます。次の例では、括弧内の最初のパラメーター [yyyyMMdd] は、返される時間の形式を示しています。括弧内の 2 番目のパラメーターは、加算または減算する月の数を示しています。

    • N 年を加算する: $[add_months(yyyyMMdd,12*N)]

    • N 年を減算する: $[add_months(yyyyMMdd,-12*N)]

    • N か月を加算する: $[add_months(yyyyMMdd,N)]

    • N か月を減算する: $[add_months(yyyyMMdd,-N)]

  • カスタム時間パラメーターに +Number または -Number を追加します。

    • N 週間を加算する: $[yyyyMMdd+7*N]

    • N 週間を減算する: $[yyyyMMdd-7*N]

    • N 日を加算する: $[yyyyMMdd+N]

    • N 日を減算する: $[yyyyMMdd-N]

    • N 時間を加算する: $[HHmmss+N/24]

    • N 時間を減算する: $[HHmmss-N/24]

    • N 分を加算する: $[HHmmss+N/24/60]

    • N 分を減算する: $[HHmmss-N/24/60]

タスクパラメーター

タスクパラメーターは、ローカルパラメーターとも呼ばれ、ノードに対して有効です。デフォルトでは、ノードの作成時に定義されたカスタムパラメーターは、現在のノードにのみ適用されます。パラメーターを現在のノードの子孫ノードに渡すことができるように指定すると、パラメーターは現在のノードの子孫ノードに適用できます。

パラメーターの定義

image.png[現在のノード設定] ダイアログボックスで、image.png の下の アイコンをクリックして、1 つ以上カスタムパラメーターを追加します。次の図は、カスタムパラメーターを定義する方法を示しています。

この例で定義されているカスタムパラメーター:

  • dt: カスタムパラメーターの名前。

  • IN: パラメーターが現在のノードにのみ適用されることを指定します。値 OUT は、パラメーターを現在のノードの子孫ノードに渡すことができることを指定します。

  • VARCHAR: パラメーターのデータ型。

  • $[yyyy-MM-dd]: パラメーターの値。

パラメーターの使用

ノードを作成するときは、${...} 形式でローカルパラメーターを指定します。

ワークフローパラメーター

ワークフローパラメーターは、グローバルパラメーターとも呼ばれ、ワークフローのすべてのノードに対して有効であり、ワークフローの保存時に設定されます。

パラメーターの定義

ワークフローを保存するときに、1 つ以上のグローバルパラメーターを追加し、パラメーターの名前と値を指定できます。

image.png

パラメーターの使用

ワークフローを保存するときは、${...} 形式でグローバルパラメーターを指定します。

プロジェクトパラメーター

プロジェクトパラメーターは、プロジェクト内のすべてのワークフローに対して有効です。

パラメーターの定義

プロジェクトパラメーターを定義するには、次の操作を実行します。プロジェクトの詳細ページで、左側のナビゲーションウィンドウの [プロジェクト設定] > [プロジェクトパラメーター] を選択します。[プロジェクトパラメーター] ページで、[パラメーターの作成] をクリックします。[パラメーターの作成] ダイアログボックスで、[パラメーター名] パラメーターと [パラメーター値] パラメーターを構成します。

image.png

パラメーターの使用

ノードを作成するときは、${...} 形式でプロジェクトパラメーターを指定します。

パラメーターの受け渡し

EMR ワークフローでは、ノード間でパラメーターを受け渡すことができます。ノードのパラメーターをノードの子孫ノードに渡すことができます。

ノードのカスタムパラメーターを定義するときに、[OUT] を選択して、カスタムパラメーターを現在のノードの子孫ノードに渡すことができるように指定します。さらに、現在のノードのスクリプトに echo 文を入力する必要があります。echo 文の形式は、echo "#{setValue(key=value)}" です。この文では、key は OUT タイプのカスタムパラメーターの名前を示します。 value は、現在のノードの子孫ノードに渡す値を示し、定数、別のタスクパラメーターの値、または bash スクリプトの変数の値を指定できます。ノードからその子孫ノードに渡されるパラメーターを使用するには、子孫ノードに対して ${...} 形式でパラメーターを指定するだけで済みます。

例:

定数の受け渡し

ノードを作成するときに、OUT タイプの res という名前のカスタムパラメーターを定義し、スクリプトに echo "#{setValue(res=1234)}" と入力します。このようにして、値が 1234 の res パラメーターを現在のノードの子孫ノードに渡すことができます。

image.png

タスクパラメーターの受け渡し

ノードを作成するときに、IN タイプの param という名前のカスタムパラメーターを定義し、その値を 123 に設定します。次に、OUT タイプの res という名前の別のカスタムパラメーターを定義し、スクリプトに echo "#{setValue(res=${param})}" と入力します。このようにして、res パラメーターを使用して、値が 123 の param パラメーターを現在のノードの子孫ノードに渡すことができます。

image.png

bash スクリプトの変数の受け渡し

ノードを作成するときに、OUT タイプの res という名前のカスタムパラメーターを定義し、スクリプトに echo "#{setValue(res=${RESULT})}" と入力します。このようにして、res パラメーターを使用して、値が 123 の RESULT 変数を現在のノードの子孫ノードに渡すことができます。

image.png

パラメーターの優先順位

EMR ワークフローを使用する場合、次のタイプのパラメーターが関係します。

異なるタイプのパラメーターが複数あり、同じ名前の場合、指定されたパラメーター値は、次の優先順位に基づいて適用されます。タスクパラメーター (ローカルパラメーター) > ノードの子孫ノードに渡されるパラメーター > ワークフローパラメーター (グローバルパラメーター) > プロジェクトパラメーター