パラメータファイル
パラメータファイルとは、ユーザー定義パラメータ、およびそれらに関連する値のリストです。
パラメータファイルを使用して、タスクを編集せずに更新する値を定義します。タスクで値を更新するのではなくパラメータファイルで値を更新します。パラメータ値はタスクが実行されるときに適用されます。
次のタスクでは、パラメータファイルを使用してパラメータ値を定義できます。
- マッピングタスク
- 次のトランスフォーメーションでは、接続のパラメータ値を定義します。
- - ソース
- - ターゲット
- - ルックアップ
- - SQL
- 次のトランスフォーメーションでは、オブジェクトのパラメータ値を定義します。
- また、データフィルタ、式、およびルックアップ式のパラメータの値を定義します。
注: すべてのコネクタがパラメータファイルをサポートしているわけではありません。コネクタが接続とデータオブジェクトの実行時オーバーライドをサポートするかどうかを確認するには、適切なコネクタのヘルプを参照してください。
- 同期タスク
- データフィルタ、式、およびルックアップ式のパラメータの値を定義します。
- PowerCenterタスク
- データフィルタ、式、およびルックアップ式のパラメータと変数の値を定義します。
タスクの設定時にパラメータファイル名と場所を入力します。
SQL ELTモードのマッピングに基づくマッピングタスクでパラメータファイルを使用することはできません。
パラメータファイルの要件
マッピングタスク、タスクフロー、リニアタスクフローなどのアセット全体でパラメータファイルを再利用できます。パラメータファイルを再利用するには、パラメータファイル内でローカルパラメータとグローバルパラメータを定義します。
パラメータはパラメータファイルの各セクションでグループ化されます。各セクションの前には、パラメータ値を適用するプロジェクト、フォルダ、およびアセットを識別する見出しが付きます。見出しのすぐ下でパラメータを定義します。このとき各パラメータを新しい行に入力します。
以下の表では、パラメータファイルの各セクションを定義する見出し、および各セクションに定義したパラメータのスコープについて説明します。
見出し | 説明 |
---|
#USE_SECTIONS | パラメータファイルにアセット固有のパラメータが含まれていることをデータ統合に伝えます。この見出しを、セクションが含まれるパラメータファイルの最初の行として使用します。それ以外の場合、データ統合は最初のグローバルセクションのみを読み取り、その他すべてのセクションを無視します。 |
[グローバル] | すべてのプロジェクト、フォルダ、タスク、タスクフロー、およびリニアタスクフローのパラメータを定義します。 |
[プロジェクト名].[フォルダ名]。[タスクフロー名] または [プロジェクト名].[タスクフロー名] | 名前付きタスクフローのタスクのパラメータのみを定義します。 タスクフローセクションおよびグローバルセクションでパラメータが定義されている場合、タスクフローセクションの値でグローバル値が上書きされます。 |
[プロジェクト名].[フォルダ名]。[リニアタスクフロー名] または [プロジェクト名].[リニアタスクフロー名] | 名前付きリニアタスクフローのタスクのパラメータのみを定義します。 リニアタスクフローセクションおよびグローバルセクションでパラメータが定義されている場合、リニアタスクフローセクションの値でグローバル値が上書きされます。 |
[プロジェクト名].[フォルダ名]。[タスク名] または [プロジェクト名].[タスク名] | 名前付きタスクのパラメータのみ定義します。 タスクセクションおよびグローバルセクションでパラメータが定義されている場合、タスクセクションの値でグローバル値が上書きされます。 タスクセクションとタスクフローまたはリニアタスクフローセクションでパラメータが定義されており、タスクフローによってタスクが使用された場合、タスクセクションの値でタスクフローセクションの値が上書きされます。 |
パラメータファイルにセクションが含まれない場合、データ統合はすべてのパラメータをグローバルとして読み取ります。
次のようにパラメータ名の前に2個のドル記号($$)を付けます: $$<parameter>。次のようにパラメータ値を定義します。
$$<parameter>=value
$$<parameter2>=value2
例えば、パラメータSalesQuotaとRegionがあります。パラメータファイルで、各パラメータを次の形式で定義します。
$$SalesQuota=1000
$$Region=NW
パラメータ値には、先頭または末尾のスペースを含めて、等号(=)の後のすべての文字が含まれます。パラメータ値はString値として扱われます。
パラメータスコープ
パラメータファイルの複数のセクションで同じパラメータの値を定義した場合、スコープが最も小さいパラメータが、スコープが大きいパラメータよりも優先されます。
この場合、データ統合は次のような順序でパラメータ値を優先します。
- 1タスクセクションで定義した値。
- 2タスクフローまたはリニアタスクフローセクションで定義した値。
- 3#USE_SECTIONSで定義した値。
- 4グローバルセクションで定義した値。
例えば、パラメータファイルに以下のようなパラメータ値が含まれていたとします。
[GLOBAL]
$$connection=ff5
[Project1].[Folder1].[monthly_sales]
$$connection=ff_jd
Project1内のFolder1のタスク「monthly_sales」の場合、パラメータ$$connectionの値は「ff_jd」です。その他すべてのタスクでは、$$connectionの値は「ff5」です。
タスクセクションとタスクフローまたはリニアタスクフローセクションでパラメータを定義し、タスクフローによってタスクが使用された場合、データ統合ではタスクセクションで定義したパラメータ値が使用されます。
例えば、パラメータファイルで次のようにパラメータ値を定義します。
#USE_SECTIONS
$$source=customer_table
[GLOBAL]
$$location=USA
$$sourceConnection=Oracle
[Default].[Sales].[Task1]
$$source=Leads_table
[Default].[Sales].[Taskflow2]
$$source=Revenue
$$sourceconnection=ODBC_1
[Default].[Taskflow3]
$$source=Revenue
$$sourceconnection=Oracle_DB
$$location、$$source、および$$sourceconnectionパラメータを含むTask1。Task1を含むTaskflow2とTaskflow3。
Taskflow2を実行すると、データ統合では次のパラメータ値が使用されます。
パラメータ | セクション | 値 |
---|
$$source | [Default].[Sales].[Task1] | Leads_table |
$$sourceconnection | [Default].[Sales].[Taskflow2] | ODBC_1 |
$$location | [GLOBAL] | USA |
Taskflow3を実行すると、データ統合では次のパラメータ値が使用されます。
パラメータ | セクション | 値 |
---|
$$source | [Default].[Sales].[Task1] | Leads_table |
$$sourceconnection | [Default].[Taskflow3] | Oracle_DB |
$$location | [GLOBAL] | USA |
Task1を実行すると、データ統合では次のパラメータ値が使用されます。
パラメータ | セクション | 値 |
---|
$$source | [Default].[Sales].[Task1] | Leads_table |
$$sourceconnection | [GLOBAL] | Oracle |
$$location | [GLOBAL] | USA |
$$sourceパラメータを含む他のすべてのタスクの場合、データ統合では値customer_tableが使用されます。
サンプルのパラメータファイル
次の例は、パラメータファイル項目のサンプルです。
#USE_SECTIONS
$$oracleConn=Oracle_SK
$$city=SF
[Global]
$$ff_conn=FF_ja_con
$$st=CA
[Default].[Accounts].[April]
$$QParam=SELECT * from con.ACCOUNT where city=LAX
$$city=LAX
$$tarOb=accounts.csv
$$oracleConn=Oracle_Src
パラメータファイルの場所。
パラメータファイルを使用する場合は、タスクタイプに基づいて、ローカルマシンまたはクラウドでホストされているディレクトリにパラメータファイルを保存します。タスクの作成時に、[ランタイムオプション]タブでパラメータファイルの詳細を入力します。
次の表に、各タスクタイプのデフォルトのパラメータファイルディレクトリを示します。
タスクタイプ | デフォルトのパラメータファイルディレクトリ |
---|
マッピングに基づくマッピングタスク | <Secure Agentのインストールディレクトリ>/apps/Data_Integration_Server/data/userparameters |
詳細モードのマッピングに基づくマッピングタスク | <Secure Agentのインストールディレクトリ>/apps/data/userparameters |
同期タスク | <Secure Agentのインストールディレクトリ>/apps/Data_Integration_Server/data/userparameters |
マッピングタスクの場合、パラメータファイルを次のいずれかの場所に保存することもできます。
- ローカルマシン
Secure Agentがアクセス可能な場所にファイルを保存します。詳細モードのマッピングの場合は、Secure Agentマシンにファイルを保存する必要があります。
タスクの作成時に[ランタイムオプション]タブでファイル名とディレクトリを入力します。ファイルの絶対パスを入力します。または、$PMシステム変数に関連するパス($PMRootDir/ParameterFilesなど)を入力します。
次の表に、使用できるシステム変数を示します。
システム変数 | 説明 |
---|
$PMRootDir | データ統合サーバーのSecure Agentサービスのルートディレクトリ。 デフォルトは<Secure Agent installation directory>/apps/Data_Integration_Server/dataです。 |
$PMBadFileDir | 行エラーログと拒否ファイルのディレクトリ。 デフォルトは$PMRootDir/errorです。 |
$PMCacheDir | インデックスファイルとデータキャッシュファイルのディレクトリ。 デフォルトは、$PMRootDir/cacheです。 |
$PMExtProcDir | 外部プロシージャのディレクトリ。 デフォルトは、$PMRootDirです。 |
$PMLookupFileDir | ルックアップファイルのディレクトリ。 デフォルトは、$PMRootDirです。 |
$PMSessionLogDir | セッションログのディレクトリ。 デフォルトは$PMRootDir/../logsです。 |
$PMSourceFileDir | ソースファイルのディレクトリ。 デフォルトは、$PMRootDirです。 |
$PMStorageDir | セッションやワークフローのリカバリファイルなど、内部プロセスの動作状態に関連するファイルのディレクトリ。 デフォルトは、$PMRootDirです。 |
$PMTargetFileDir | ターゲットファイルのディレクトリ。 デフォルトは、$PMRootDirです。 |
$PMTempDir | 一時ファイルのディレクトリ。 デフォルトは、$PMRootDir/Tempです。 |
$PMWorkflowLogDir | ワークフローログのディレクトリ。 デフォルトは$PMRootDir/../logsです。 |
システム変数の設定済みパスを見つけるには、次のディレクトリにあるpmrdtm.cfgファイルを参照してください。
<Secure Agent installation directory>\apps\Data_Integration_Server\<Data Integration Server version>\ICS\main\bin\rdtm
$PMRootDir以外の変数の設定済みパスは、管理者のデータ統合サーバーシステム設定の詳細にあります。
場所が入力されていない場合、データ統合はデフォルトのパラメータファイルディレクトリを使用します。
- クラウドプラットフォーム
- Informatica Intelligent Cloud Servicesに保存されている接続を使用できます。次のテーブルは、使用可能な接続タイプと各接続タイプの設定要件を示しています。
接続タイプ | 要件 |
---|
Amazon S3 V2 | 次の資格情報で作成された接続を使用できます。 S3バケットはパブリックである必要があります。 |
Azure Data Lake Store Gen2 | 次の資格情報で作成された接続を使用できます。 - - アカウント名
- - ClientID
- - クライアントシークレット
- - テナントID
- - ファイルシステム名
- - ディレクトリパス
ストレージポイントはパブリックである必要があります。 |
Google Storage V2 | 次の資格情報で作成された接続を使用できます。 - - サービスアカウントID
- - サービスアカウントキー
- - プロジェクトID
ストレージバケットはパブリックである必要があります。 |
タスクを設定する前に接続を作成します。タスクの作成時に、[ランタイムオプション]タブで使用する接続とファイルオブジェクトを選択します。
データ統合データ統合では、タスクの実行後に、パラメータファイルの場所と各パラメータの値がジョブの詳細に表示されます。
パラメータファイルに関するルールおよびガイドライン
データ統合はパラメータファイルの処理に次のルールを使用します。
- •パラメータファイルでパラメータが定義されていない場合、データ統合はタスクで定義されている値を使用します。
- •実行時にオーバーライド可能なソースまたはターゲットのオブジェクトパラメータがマッピングで使用されており、既存のオブジェクトがタスクで選択されている場合、パラメータファイルのパラメータ値をNULLにすることはできません。値がNULLの場合、タスクは失敗します。
- •詳細モードでは、パラメータファイルに入力パラメータ値を設定することはできません。入力パラメータ値に依存するパラメータファイル内の入出力パラメータをオーバーライドする場合は、マッピングタスクで設定する入力パラメータ値に基づいて、入出力パラメータ値が有効であることを確認してください。そうしないと、マッピングが失敗する可能性があります。
例えば、ソース接続が入力パラメータで、ソーステーブルが入出力パラメータの場合、パラメータファイルで設定するテーブル名は、マッピングタスクで設定したソース接続に存在している必要があります。
- •詳細モードでは、デフォルトのパラメータ値がスキーマ名とテーブル名に対して有効であることを確認してください。パラメータファイルを使用してスキーマ名またはテーブル名のオーバーライドのパラメータ値を更新し、デフォルトのパラメータ値が無効である場合、詳細モードのマッピングは失敗します。
- •データ統合はファイルをトップダウンで処理します。
- •同じセクションでパラメータ値が複数回定義されている場合、データ統合は最初の値を使用します。例えば、パラメータファイルには以下のタスクのセクションが含まれます。
[MyProject].[Folder1].[mapping_task1]
$$sourceconn=Oracle
$$filtervariable=ID
$$sourceObject=customer_table
$$targetconn=salesforce
$$sourceconn=ff_2
Mapping_task1を実行すると、sourceconnパラメーターの値はOracleになります。
- •パラメータ値がファイルで定義されている別のパラメータである場合は、パラメータ名の前に1つのドル記号($)を付けます。データ統合は、最も具体的な範囲内にある変数の最初の値を使用します。例えば、パラメータファイルに以下のようなパラメータ値が含まれていたとします。
[GLOBAL]
$$ffconnection=my_ff_conn
$$var2=California
$var5=North
[Default].[folder5].[sales_accounts]
$$var2=$var5
$var5=south
タスク「sales_accounts」で、「var5」の値は「south」です。var2はvar5として定義されているので、var2も「south」です。
詳細モードでは、パラメータ名の前に2つのドル記号($$)を付けます。
[GLOBAL]
$$ffconnection=my_ff_conn
$$var2=California
$$var5=North
[Default].[folder5].[sales_accounts]
$$var2=$$var5
$$var5=south
- •タスクが複数回定義されている場合、データ統合はセクションを結合します。
- • 同じタスクに対する複数のセクションでパラメータが定義されている場合、データ統合は最初の値を使用します。例えば、パラメータファイルには以下のタスクのセクションが含まれます。
[Default].[Folder1].[MapTask2]
$$sourceparam=Oracle_Cust
[Default].[Folder1].[MapTask2]
$$sourceparam=Cust_table
$$targetparam=Sales
MapTask2を実行すると、データ統合では次のパラメータ値が使用されます。
- - $$sourceparam=Oracle_Cust
- - $$targetparam=Sales
- •セクション内に存在する場合を除き、パラメータの値はグローバルです。
- •データ統合は、構文エラーのあるセクションを無視します。
- •詳細モードのマッピングのデフォルトの日付/時刻形式は、MM/DD/YYYY HH24:MI:SSです。別の日付/時刻形式を使用するには、マッピングタスクの詳細セッションプロパティDateTime Format Stringを設定します。
パラメータファイルテンプレート
マッピングパラメータとそのデフォルト値を含むパラメータファイルテンプレートを生成してダウンロードできます。パラメータファイルテンプレートには、実行時にオーバーライドできる入力パラメータと入出力パラメータが含まれています。パラメータファイルテンプレートを保存し、それを使用してタスクの実行時にパラメータ値を適用するか、マッピングパラメータを別のパラメータファイルにコピーします。
パラメータファイルテンプレートを生成すると、ファイルには、タスクのベースとなっているマッピングからのデフォルトのパラメータ値が含まれます。パラメータの作成時にデフォルト値を指定しない場合、テンプレートのパラメータの値は空白になります。
パラメータファイルテンプレートには、次の要素は含まれていません。
- •マッピングタスクで指定するランタイム値
- •部分的なパラメータ
- •詳細セッションプロパティ
- •システム定義変数
マッピングでパラメータを追加、編集、または削除する場合は、新しいパラメータファイルテンプレートをダウンロードします。
パラメータファイルテンプレートのダウンロード
1マッピングタスクの[ランタイムオプション]タブで、[パラメータファイルテンプレートのダウンロード]をクリックします。
ファイル名は<マッピングタスク名>.paramです。
2以降のタスク実行でこのファイルを使用する場合は、Secure Agentからアクセスできる場所にパラメータファイルを保存します。
タスクの設定時に[ランタイムオプション]タブでファイル名とディレクトリを入力します。
パラメータファイルによる接続の上書き
マッピングに接続パラメータを使用している場合は、実行時にマッピングタスクで定義されている接続をパラメータファイルで指定した値でオーバーライドできます。
パラメータファイルで接続の値を定義する場合は、接続タイプをマッピングタスクのデフォルトの接続タイプと同じにする必要があります。例えば、フラットファイル接続パラメータを作成してマッピングでソース接続として使用するとします。マッピングタスクで、フラットファイルのデフォルトの接続を指定します。パラメータファイルでは、接続をフラットファイルの接続でオーバーライドのみできます。
パラメータを使用してFTP接続を上書きする場合、ファイルローカルディレクトリを同じにする必要があります。
パラメータファイルを使用して、FTP/SFTP接続でルックアップを上書きすることはできません。
注: 一部のコネクタは、キャッシュ済みのルックアップのみをサポートします。コネクタがサポートするルックアップのタイプを確認するには、適切なコネクタのヘルプを参照してください。
1マッピングで、入力パラメータを作成します。
- aパラメータのタイプに[接続]を選択します。
- b[実行時にパラメータのオーバーライドを許可する]を選択します。
2マッピングで、上書きする接続としてパラメータを使用します。
3マッピングタスクで、パラメータの詳細を次のように定義します。
- aデフォルトの接続を選択します。
- b[ランタイムオプション]タブで、パラメータファイルのディレクトリとパラメータファイル名を入力します。
4パラメータファイルで、実行時に使用する値で接続パラメータを定義します。
パラメータ名の前に2個のドル記号($$)を付けます。例えば、ConParamという名前のパラメータがあり、これを接続OracleCon1で上書きするとします。ランタイム値を次の形式を使用して定義します。
$$ConParam=OracleCon1
5接続を変更する場合は、パラメータファイルのパラメータ値を更新します。
パラメータファイルによるデータオブジェクトの上書き
マッピングでデータオブジェクトパラメータを使用している場合は、実行時にマッピングタスクで定義されているオブジェクトをパラメータファイルで指定した値でオーバーライドできます。
注: 複数のリレーショナルオブジェクトまたはファイルリストから読み取る場合、ソースオブジェクトを上書きすることはできません。実行時にターゲットを作成した場合、ターゲットオブジェクトを上書きすることはできません。
パラメータファイルでオブジェクトパラメータを定義する場合は、ファイル内のパラメータにマッピングタスクのデフォルトパラメータと同じメタデータが必要です。例えば、ソースオブジェクトACCOUNTをEMEA_ACCOUNTで上書きする場合は、両方のオブジェクトに同じフィールドと各フィールドの同じデータ型が含まれている必要があります。
1マッピングで、入力パラメータを作成します。
- aパラメータのタイプの[データオブジェクト]を選択します。
- b[実行時にパラメータのオーバーライドを許可する]を選択します。
2マッピングで、上書きするオブジェクトのオブジェクトパラメータを使用します。
3マッピングタスクで、パラメータの詳細を次のように定義します。
- aタイプを[シングル]に設定します。
- bデフォルトデータオブジェクトを選択します。
- c[スケジュール]タブで、パラメータファイルのディレクトリとファイル名を入力します。
4パラメータファイルで、実行時に使用するオブジェクトを指定します。次のいずれかのタスクを実行します。
- - フラットファイルまたはFTPソース以外のソースの場合は、パラメータ名の前に2つのドル記号($$)を付けます。例えば、ObjParam1という名前のパラメータがあり、これをデータオブジェクトSourceTableで上書きするとします。ランタイム値を次の形式を使用して定義します。
$$ObjParam1=SourceTable
- - フラットファイルおよびFTPソースの場合は、パラメータ名の前にドル記号($)を1つ付けます。次の例は、FTP接続のソースディレクトリ、ソースファイル名、およびリモートファイル名を上書きするために使用されるパラメータファイルからのものです。
#USE_SECTIONS
[MyProjectFolder].[MappingTask_ftp]
$Source_dir=/data/test/test_data/Test/
$Source_file=src_ff.txt
$RemoteFileName=/root/FlatFile/Scotty/Test/src_14892_1.txt
[Global]
5オブジェクトを変更する場合は、パラメータファイルのパラメータ値を更新します。
ソースクエリの上書き
マッピングでソースクエリまたはフィルタ条件を使用している場合は、マッピングタスクで指定されている値をパラメータファイルで指定した値でオーバーライドできます。リレーショナルデータベース接続とODBCデータベース接続のソースクエリをオーバーライドできます。
SQLクエリを定義する場合は、上書きされたクエリ内のフィールドがデフォルトのクエリ内のフィールドと同じである必要があります。パラメータファイル内のクエリが不足している場合または無効の場合、タスクは失敗します。
パラメータファイルでフィルタ条件パラメータが未解決の場合、データ統合はパラメータをフィルタ値として使用し、タスクはゼロ行を返します。
1マッピングで、データオブジェクトパラメータを作成します。
2[実行時にパラメータのオーバーライドを許可する]を選択します。
3パラメータをソースオブジェクトとして使用します。
4マッピングタスクで、[ソース]タブの[クエリ]をソースタイプとして選択します。
5デフォルトカスタムクエリを入力します。
6[ランタイムオプション]タブで、パラメータファイル名と場所を入力します。
7パラメータファイルで、タスクの実行時に使用する値を入力します。
8クエリを変更する場合は、パラメータファイルのパラメータ値を更新します。
パラメータファイルを使用した、実行時のターゲットオブジェクトの作成
マッピングでターゲットオブジェクトパラメータを使用している場合は、実行時にパラメータファイルを使用してターゲットを作成できます。
ターゲットオブジェクトのパラメータおよび使用する名前をパラメータファイルに含めます。パラメータファイルにターゲット名が存在しない場合、データ統合の実行時にターゲットが作成されます。以降の実行時に、データ統合は既存のターゲットを使用します。
パラメータファイルを使用して実行時にターゲットを作成するには、次の条件を満たす必要があります。
- •マッピングが、フラットファイル、リレーショナル、またはファイルストレージベースの接続を使用している。
- •マッピングが、マッピングタスク、動的マッピングタスク、またはタスクフローで使用されている。
ファイルストレージベースの接続である場合は、パラメータファイルのパラメータ値にパスとファイル名を含めることができます。パスが指定されていない場合、接続で指定されたデフォルトのパスにターゲットが作成されます。
1マッピングで、入力パラメータを作成します。
- aパラメータのタイプの[データオブジェクト]を選択します。
- b[実行時にパラメータのオーバーライドを許可する]を選択します。
2マッピングで、パラメータをターゲットオブジェクトとして使用します。
3タスクで、パラメータの詳細を次のように定義します。
- aタイプを[シングル]に設定します。
- bデフォルトデータオブジェクトを選択します。
- c[スケジュール]タブで、パラメータファイルのディレクトリとファイル名を入力します。
4パラメータファイルで、作成するターゲットオブジェクトの名前を指定します。
パラメータ名の前に2個のドル記号($$)を付けます。例えば、TargetObjParamという名前のパラメータがあり、MyTargetという名前のターゲットオブジェクトを作成する場合は、ランタイム値を次の形式を使用して定義します。
$$TargetObjParam=MyTarget
ファイルストレージベースのコネクタタイプである場合は、オブジェクト名にパスを含めます。パスを含めない場合、接続で指定されたデフォルトのパスにターゲットが作成されます。
5オブジェクトを変更する場合は、パラメータファイルのパラメータ値を更新します。