セキュアエージェントのキャッシュディレクトリの場所を変更する

2022.10.07

データアナリティクス事業本部の鈴木です。

Informatica Intelligent Cloud Services(以降、IICS)のInformatica Cloud Data Integration(以降、CDI)で、ローカルのキャッシュディレクトリの場所を変更してみたのでご共有します。

やりたいこと

EC2にSecureAgentをインストールして、CDIの機能を利用していますが、EC2内部で使うキャッシュディレクトリの場所を変更したいです。キャッシュディレクトリは、Rank transformationなどでローカルに一時的にファイルが作成される場所です。

調べたところ、以下のナレッジに方法が記載されていたので試してみました。

HOW TO: Change cache directory for IICS Data Integration cache files (for joiner, sorter, aggregator, and lookup transformations)

ランタイム環境のData Integration Serverの設定で、以下の変数を変更することで設定ができるようでした。

  • $PMCacheDir
  • $PMTempDir

デフォルトでは、{Agent_Dir}/apps/Data_Integration_Server/data/配下のcachetempを使用しますが、この上記の設定を変更して、動作が変わるか確認しました。

特に$PMCacheDirは実際にキャッシュファイルができるところまで確認できました。$PMTempDirはファイルを作ることができなかったので、今回は設定変更した上でマッピングが正常に動くことを確認しました。

構成とデータについて

構成は以下のようにしました。

構成

処理内容自体はこの記事の検証したいこととは関係がないので、S3からファイルを読み込んで、キャッシュファイルができるような処理をしているんだな、くらいにご認識ください。

特に処理内容は、ランクをマッピングに組み込むと、キャッシュファイルを指定した場所に作るようだったので、以下の記事を参考に、ランクで確認を行ってみました。

環境

  • ubuntu 16.04.7 LTS(EC2インスタンス)
  • Data Integration Server: 63.0.11

やってみる

1. デフォルト設定での動作を確認する

まず設定を追加しない状態で動かしてみて、どこに一時フォルダができるか確認しました。

マッピングは以下のようなものを作成しました。

作成したマッピング

特に、ランクの詳細 > キャッシュディレクトリ$PMCacheDirを指定していることを確認しておきます。これはデフォルトでは{Agent_Dir}/apps/Data_Integration_Server/data/cacheでした。

キャッシュディレクトリの設定

上記記事のマッピングを手動で動かしてみます。

マッピングの実行

EC2に接続してみて、{Agent_Dir}/apps/Data_Integration_Server/data/cacheを観察すると、マッピングが動いている間だけ、ファイルが作成されることが分かりました。

デフォルト設定時のキャッシュファイル

このファイルが、設定を変更することで、指定の場所に作成されるようになるか確認します。

2. テンポラリの場所を変更する

まず、EC2にログインし、今回はセキュアエージェント用にEC2ローカルに作成しておいた/home/infaに、適当なディレクトリを作成しました。

cd /home/infa
# 適当なディレクトリの作成
mkdir nayuts
cd nayuts
mkdir cache
mkdir temp
# $セキュアエージェントが使うユーザーは適切なものに置き換えてください
sudo chown $セキュアエージェントが使うユーザー:$セキュアエージェントが使うユーザー cache
sudo chown $セキュアエージェントが使うユーザー:$セキュアエージェントが使うユーザー temp

次に、作成したディレクトリを使ってくれるよう、変数を設定していきます。

管理者 > ランタイム環境 で設定したい環境を選択します。

システム構成の詳細Data Integration Serverを選択し、編集を押して変数を設定します。

編集画面の開き方

今回はセキュアエージェント用にEC2ローカルに作成しておいた/home/infaに適当なディレクトリを作成し、$PMCacheDir/home/infa/cm_nayuts/cacheと、$PMCacheDir/home/infa/cm_nayuts/tempという風に指定しました。

変数の設定

保存するとセキュアエージェントのエージェントサービス一式が再起動したので、それを待ちます。構成によってはダウンタイムが発生するため注意が必要そうでした。

エージェントサービスの再起動後、先ほどと同じようにマッピングタスクを実行してみました。

すると、/home/infa/cm_nayuts/cacheにファイルが作成されることを確認できました。

設定追加後のキャッシュディレクトリ

3. 補足

ちなみに、$PMCacheDir$PMTempDirのデフォルト値はそれぞれ、'$PMRootDir/cache''$PMRootDir/temp'のようになっていました。

以下のナレッジによると、$PMRootDirを変えると他の機能に影響があるようなので、今回のように$PMCacheDir$PMTempDirに直接指定する方がよさそうでした。

FAQ: How to set $PMRootDir in IICS CDI?

最後に

今回はランタイム環境の設定で、EC2内部でセキュアエージェントが使うキャッシュディレクトリの場所を変更する方法を試してみました。参考になりましたら幸いです。