セキュアエージェントのキャッシュディレクトリの場所を変更する
データアナリティクス事業本部の鈴木です。
Informatica Intelligent Cloud Services(以降、IICS)のInformatica Cloud Data Integration(以降、CDI)で、ローカルのキャッシュディレクトリの場所を変更してみたのでご共有します。
やりたいこと
EC2にSecureAgentをインストールして、CDIの機能を利用していますが、EC2内部で使うキャッシュディレクトリの場所を変更したいです。キャッシュディレクトリは、Rank transformationなどでローカルに一時的にファイルが作成される場所です。
調べたところ、以下のナレッジに方法が記載されていたので試してみました。
ランタイム環境のData Integration Serverの設定で、以下の変数を変更することで設定ができるようでした。
$PMCacheDir
$PMTempDir
デフォルトでは、{Agent_Dir}/apps/Data_Integration_Server/data/
配下のcache
とtemp
を使用しますが、この上記の設定を変更して、動作が変わるか確認しました。
特に$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
に直接指定する方がよさそうでした。
最後に
今回はランタイム環境の設定で、EC2内部でセキュアエージェントが使うキャッシュディレクトリの場所を変更する方法を試してみました。参考になりましたら幸いです。