タスクフローのパラメータ
タスクフローを使用して、タスクに入力パラメータと入出力パラメータを渡すことができます。
入力パラメータまたは入出力パラメータを使用して、マッピングを設計できます。タスクフローにマッピングタスクを追加すると、パラメータ値を上書きできます。マッピングタスクは、これらのパラメータをマッピングに渡します。パラメータ化されたマッピングタスクは、さまざまなシナリオで使用できます。
PowerCenterタスクが入力パラメータまたは入出力パラメータを使用する場合、タスクフローのパラメータを上書きできます。
次のセクションでは、入力および入出力パラメータと、それらをタスクフロー内で使用する方法について説明します。
- 入力パラメータ
入力パラメータは、マッピングタスクまたはPowerCenterタスクの1つまたは複数の値のプレースホルダです。マッピングタスクまたはPowerCenterタスクの設定時に、パラメータの値を定義します。入力パラメータの詳細については、「マッピング」および「タスク」を参照してください。
PowerCenterタスクが入力パラメータを使用する場合、タスクフローの入力パラメータを上書きできます。
タスクフローを使用すると、次のマッピング入力パラメータのサブセットを上書きできます。
- - 文字列。マッピングタスクの入力として使用する文字列値を変更します。
- - ソースオブジェクト。マッピングタスクが読み取るオブジェクトを変更します。
- - ソース接続。マッピングタスクがソースからの読み取りに使用する接続を変更します。
- - ターゲット接続。マッピングタスクがターゲットへの書き込みに使用する接続を変更します。
- - ターゲットオブジェクト。マッピングタスクが書き込むオブジェクトを変更します。
- - Source_dataFormat。形式ファイル内の特定のカラムの精度値またはその他の値のデータ形式を変更します。
- - Source_defaultPrecision。形式ファイル内のすべてのカラムの精度の値を変更します。
例えば、完全にパラメータ化されたマッピングタスクについて考えてみます。マッピングタスクでは、SQL接続を使用してemployeeaddressテーブルから読み取りを行い、JDBC接続を使用してemployeedetailsテーブルに書き込みます。
タスクフローを作成し、マッピングタスクでパラメータを上書きすることができます。例えば、Salesforce接続を使用して、employeeincomeテーブルとフラットファイル接続から読み取りを行い、ファイルincome.txtに書き込むことができます。
- 入出力パラメータ
入出力パラメータは、マッピングタスクまたはPowerCenterタスクの入出力として渡すことができる値のプレースホルダです。入力パラメータとは異なり、入出力パラメータはタスクが実行されるたびに変化する可能性があります。タスクフローを使用すると、マッピングタスクまたはPowerCenterタスクがサポートするすべてのタイプの入出力パラメータを上書きできます。入出力パラメータの詳細については、「マッピング」および「タスク」を参照してください。
例えば、lastprocessedindexという入出力パラメータを使用して処理する行数を追跡するマッピングを考慮します。マッピングは、実行するたびにインデックスからの処理を再開します。さらに、マッピングは実行するたびに5000行を処理するとします。
マッピングタスクが例えばレコード数50000に達するまで実行するようにタスクフローを設定できます。
注: 選択したマッピングタスクの入出力パラメータが追加または更新された場合、更新されたマッピングタスクを使用するには、タスクフローでマッピングタスクを再選択する必要があります。
タスクフローでのパラメータの上書き
タスクフローでの使用時にマッピングタスクのパラメータを上書きします。パラメータをデータタスクステップまたは割り当てステップでオーバーライドします。
データタスクステップでのパラメータまたはパラメータファイルの上書き
データタスクステップでPowerCenterタスクまたはフラットファイルソースを使用したマッピングタスクを使用する場合は、タスクに設定されているパラメータ値を上書きできます。データタスクステップでマッピングタスクを使用する場合は、ネイティブデータ型、デフォルトの精度、およびデフォルトのスケールを上書きできます。Secure Agentマシンで使用可能なマッピングタスクをデータタスクステップで使用する場合は、マッピングタスクに設定されているパラメータファイルディレクトリまたはパラメータファイル名を上書きできます。クラウドでホストされているリポジトリで使用可能なマッピングタスクをデータタスクステップで使用する場合は、マッピングタスクに設定されているパラメータファイル接続およびパラメータファイルオブジェクトを上書きできます。
データタスクステップを使用してデータ統合のパラメータまたはパラメータファイルを上書きするには、次の手順を実行します。
1タスクフローを作成し、データタスクステップを追加します。
2パラメータを含むタスクまたはパラメータファイルを使用するタスクをデータタスクステップに追加します。
3[データタスク] > [入力フィールド]に移動します。
4[追加]をクリックします。
5次のいずれかの手順を実行します。
- aSecure Agentマシンで使用可能なマッピングタスクのパラメータファイルディレクトリまたはパラメータファイル名を上書きするには、[タスクプロパティのパラメータ]リストを展開します。次に、[パラメータファイルディレクトリ]または[パラメータファイル名]を選択します。
注: 上書きするオブジェクトがディレクトリの下にある場合は、ファイルパスの3番目のレベル以降で二重スラッシュ(//)または%2Fを使用します。例えば、infa.bucket/flat_file_dir/parameters/input1.csvにあるinput1.csvを上書きするには、次のいずれかの形式を使用します。
- ▪ infa.bucket/flat_file_dir//parameters//input1.csv
- ▪ infa.bucket/flat_file_dir%2F/parameters%2F/input1.csv
- bマッピングタスクまたはPowerCenterタスクの入力パラメータまたは入出力パラメータを上書きするには、[入力パラメータ]リストまたは[入出力パラメータ]リストを展開します。次に、上書きするパラメータに移動して選択します。
- cクラウドでホストされているリポジトリで使用可能なマッピングタスクのパラメータファイル接続とパラメータファイルオブジェクトを上書きするには、[タスクプロパティのパラメータ]リストを展開します。次に、[パラメータファイル接続]と[パラメータファイルオブジェクト]を選択します。
注: パラメータファイル接続およびパラメータファイルオブジェクトを上書きするようにデータタスクステップを設定する場合は、両方のパラメータ、つまりソースオブジェクトとソース接続がパラメータファイルまたはタスクフローのいずれかを介して渡されるようにする必要があります。そうしないと、エラーが発生します。
- dマッピングタスクのソースデータのネイティブデータ型、デフォルトの精度、またはデフォルトのスケールを上書きするには、 [入力パラメータ] > [ソース] > [ソース]リストの順に展開します。次に、[Source_defaultNativeDataType]、[Source_defaultPrecision]、または[Source_defaultScale]をそれぞれ選択します。
注: [ソース]リストに設定された値は、マッピングタスクおよびデータタスクステップのデータ形式フィールドに設定された値よりも優先されます。[ソース]リストの値が、マッピングタスクに設定された値およびデータタスクステップのデータ形式フィールドと互換性がない場合、ジョブは失敗する可能性があります。デフォルトの精度とスケールの値は、形式ファイル内のすべてのカラムに適用されます。
- eマッピングタスクのターゲットで定義されている[カラムの更新]フィールドの値を上書きするには、[入力パラメータ] > [ターゲット] > [ターゲット]リストを展開します。次に、[updateColumns]を選択します。複数のカラム名をカンマで区切って入力します。二重引用符で囲む場合と囲まなくてよい場合があります。
注: マッピングタスクで更新操作または更新/挿入操作を使用している場合にのみ、[カラムの更新]フィールドを上書きできます。
6[編集]をクリックします。
[値の編集]ダイアログボックスが表示されます。
7[ソース]で、[コンテンツ]を選択します。高度な使用例については、[フィールド]または[数式]を選択します。
8[値]に、デフォルト値を上書きする新しい値を入力します。
注: データ形式の場合は、デフォルトで[計算式]が選択されており、ペイロードは[値]フィールドの一重引用符内に表示されます。[f(x)]をクリックして、式エディタの値を上書きできます。あるいは、フィールドにペイロードが含まれている場合は、[フィールド]を選択することもできます。ただし、選択するフィールドには、割り当てステップで一重引用符で囲まれた[計算式]を使用したペイロードが含まれている必要があります。
9[OK]をクリックします。
割り当てステップによるパラメータの上書き
データ統合のパラメータを上書きするための割り当てステップを使用するには、次の手順を実行します。
1タスクフローを作成し、データタスクステップを追加します。
2データタスクステップへの入力パラメータを含むマッピングタスクを追加します。
3割り当てステップをキャンバス上にドラッグします。
4[割り当てのプロパティ] > [割り当て]に移動します。
5[追加]アイコンをクリックし、上書きするパラメータに移動して選択します。
6[値]で、[コンテンツ]を選択します。高度な使用例については、[フィールド]または[数式]を選択します。
7デフォルトのオブジェクトまたは接続を上書きするために使用するオブジェクトまたは接続を入力または選択します。
タスクフローでのパラメータ使用のガイドラインおよびベストプラクティス
続くセクションでは、タスクフローでパラメータをオーバーライドするときのガイドラインとベストプラクティスについて説明しています。
タスクフローでの入力パラメータ使用のガイドライン
タスクフローの入力パラメータを使用するには、次のガイドラインを使用します。
- •入力パラメータをオーバーライドするには、データタスクステップを使用します。ただし、高度なケースでは、割り当てステップで入力パラメータを上書きできます。
- •割り当てステップとデータタスクステップの両方で同じパラメータを上書きするようにフィールドを定義すると、タスクフローはデータタスクステップで割り当てられた値を考慮します。
- •データタスクステップを使用して値を入力または入出力パラメータに割り当てる場合、割り当ては相互に独立している必要があります。割り当てステップを使用して値を入力または入出力パラメータに割り当てる場合、割り当て操作は同じステップの前の割り当て操作の結果を使用できます。
例えば、2つのソースオブジェクトSO1とSO2があります。SO1は値Accountでオーバーライドし、SO2は値SO1でオーバーライドします。パラメータをオーバーライドするには、割り当てステップを使用します。
以下の図は、ソースオブジェクトSO2の値SO1でのオーバーライドを示しています。
- •タスクフローをAPIとして実行する場合、接続パラメータを使用して、実行時に接続名または接続IDを渡すことができます。
例えば、接続名を使用する場合は、次のサンプルに示すように、接続パラメータに接続名を渡す必要があります。
"source":{
"Source":{
"object":"abc",
"connection":"FileSourceConnectionName"
}
}
接続IDを使用する場合は、次のサンプルに示すように、接続パラメータで接続IDを渡す必要があります。
"source":{
"Source":{
"object":"abc",
"connection":"0100000B000000000004"
}
}
- •パラメータファイル接続およびパラメータファイルオブジェクトを上書きするようにデータタスクステップを設定する場合は、両方のパラメータ、つまりソースオブジェクトとソース接続がパラメータファイルまたはタスクフローのいずれかを介して渡されるようにする必要があります。パラメータファイルまたはタスクフローのいずれかを介してパラメータが渡されない場合、エラーが発生します。
入出力パラメータの使用のガイドライン
タスクフローの入出力パラメータを使用するには、次のガイドラインを使用します。
- •割り当てステップとデータタスクステップの両方で同じパラメータを上書きするようにフィールドを定義すると、タスクフローはデータタスクステップで割り当てられた値を考慮します。
- •ユースケースが特に割り当てステップの使用を必要としていない限り、データタスクステップを使用して入出力パラメータを上書きします。
- •入出力パラメータの現在の値は、タスクフローがデータタスクステップを実行してからでないと取得できません。タスクフローがデータタスクステップを実行する前にこの値を入手することはできません。
例: データタスクステップを使用したパラメータの上書き
マッピングタスクで次の入力パラメータを上書きするには、[MyMT]をクリックします。
- •ソースデータオブジェクトパラメータMySourceObject(デフォルト値input.txt)。
- •ソース接続パラメータMySourceConnection(デフォルト値[マイファイル接続])。
- •ターゲット接続パラメータMyTargetConnection(デフォルト値[マイファイル接続])。
- •ターゲットデータオブジェクトパラメータMyTargetObject(デフォルト値output5.txt)。
[MyMT]は、[マイファイル接続]を使用してinput.txtファイルを読み取り、[マイファイル接続]を使用してoutput5.txtファイルに書き込みます。
[MyMT]で、[マイファイル接続]を使用してinput.txtファイルから読み取り、テーブルを使用し、それから[マイファイル接続]を使用して別の出力ファイルであるoutput10.txtファイルに書き込むことができます。
これを行うには、次の手順を実行して、データタスクステップを使用してMyTargetObjectのデフォルト値を上書きします。
1タスクフローを作成し、データタスクステップ[データタスク1]を追加します。
2[データタスク1] > [データタスク]に移動して、マッピングタスク[MyMT]を追加します。
3[データタスク1] > [入力フィールド]に移動します。
4次の手順を実行して、MySourceConnectionを[データタスク1]の[入力フィールド]セクションに追加します。
- a[追加]アイコンをクリックし、MySourceConnectionに移動して選択します。
- b[編集]をクリックします。[値の編集]ダイアログボックスが開きます。
- c[ソース]の横のフィールドで、[コンテンツ]を選択します。
- d[値]の横のフィールドで、[マイファイル接続]を選択します。
5次の手順を実行して、MySourceObjectを[データタスク1]の[入力フィールド]セクションに追加します。
- a[追加]アイコンをクリックし、MySourceObjectに移動して選択します。
- b[編集]をクリックします。[値の編集]ダイアログボックスが開きます。
- c[ソース]の横のフィールドで、[コンテンツ]を選択します。
- d[値]の横のフィールドで、input.txtと入力します。
6次の手順を実行して、MyTargetConnectionを[データタスク1]の[入力フィールド]セクションに追加します。
- a[追加]アイコンをクリックし、MyTargetConnectionに移動して選択します。
- b[編集]をクリックします。[値の編集]ダイアログボックスが開きます。
- c[ソース]の横のフィールドで、[コンテンツ]を選択します。
- d[値]の横のフィールドで、[マイファイル接続]を選択します。
7次の手順を実行して、MyTargetObjectを[データタスク1]の[入力フィールド]セクションに追加します。
- a[追加]アイコンをクリックし、MyTargetObjectに移動して選択します。
- b[編集]をクリックします。[値の編集]ダイアログボックスが開きます。
- c[ソース]の横のフィールドで、[コンテンツ]を選択します。
- d[値]の横のフィールドで、output10.txtと入力します。
次の図は、データタスク1の[入力フィールド]を示しています。
ターゲットデータオブジェクトパラメータMyTargetObjectは、デフォルト値のoutput5.txtから、output10.txtに上書きされています。
注: 上書きするパラメータを[入力フィールド]セクションに追加するだけで済みます。この例では、MyTargetObjectのみを上書きします。ただし、MySourceObject、MySourceObject、およびMyTargetConnectionを上書きするオプションもあります。