🚀 概要
Informatica Cloud Data Integration and Replication (CDIR) または Database Mass Ingestion (DBMI) を使用する際、複数のSecure Agentで構成された「Secure Agent Group」を活用することで、ジョブの負荷分散と高可用性を実現できます。
本記事では、このSecure Agent Group内でジョブがどのように分散されるかの仕組みと、特定のジョブを特定のSecure Agentに固定して実行させる設定方法について解説します。
💡 ジョブ分散(負荷分散)の基本ルール
Agent Group内でのジョブ分散は、主に各Agentの利用可能な容量メトリクス(maxTaskUnits)によって制御されます。
1. 初期ロードジョブ (Initial Load)
初期ロードジョブ、またはコンバインドロード(Initial Load + Incremental Load)の初期ロード部分は、グループ内の全てのアクティブなSecure Agent間で分散されます。
ジョブは以下のルールでエージェントに割り当てられます。
-
容量が異なる場合:
-
最も残りの容量(利用可能な
MaxTaskUnits)が多いAgentにジョブが割り当てられます(最適な稼働率のため)。
-
最も残りの容量(利用可能な
-
容量が等しい場合:
- 複数のAgentが同じ利用可能な容量を持つ場合、そのAgentの中からランダムにジョブが割り当てられます。
📘 MaxTaskUnitsの要件
- Database Ingestion の増分ロードジョブは、実行に1 maxTaskUnitsを必要とします。
- 初期ロードの各テーブル(サブタスク)は、1 maxTaskUnitsを必要とします。
- 初期ロード+増分ロードの場合、ジョブ自体に1 maxTaskUnits、それに加えて $n$ 個のテーブル(サブタスク)に対して $n$ 個の
maxTaskUnitsが必要です。💡 推奨設定:
maxTaskUnitsの値は、エージェントのコア数の $1/3$ または $1/4$ に設定することが推奨されています。
2. 増分ロードジョブ (Incremental Load / CDC)
増分ロード(Incremental Load)またはコンバインドロードの増分部分は、最初に割り当てられたSecure Agentで実行され続けます。
- 一度デプロイされると、そのジョブがアンデプロイされるまで、同じSecureAgentを使用し続けます 。
- ただし、実行中の増分ロードジョブが失敗したり、割り当てられたAgentがダウンしたりした場合、自動的にグループ内の他の利用可能なSecureAgentに切り替わります。
⚙️ 特定のエージェントにジョブ実行を固定する方法
増分ロードやチェンジデータキャプチャ(CDC)ジョブについて、自動分散を避け、特定のSecureAgentで実行させたい場合は、以下のカスタムプロパティを設定します。
設定手順
-
ターゲットのカスタムプロパティを設定 。
-
プロパティ:
forceRunOnSpecificAgent -
値:
<agent_id>
-
プロパティ:
-
<agent_id>の確認方法- Administrator画面を開き、「ランタイム環境」に移動します。
- Secure Agent Groupのランタイム環境を展開し、使用したいAgentをクリックします。
- ブラウザのURLからエージェントID(
<agent_id>)をコピーします。- 例:
0114IM08000000000006
- 例:
-
適用
- 上記で確認したエージェントIDを値に設定します。
- 例:
forceRunOnSpecificAgent=0114IM08000000000006
注意事項
- 指定したAgent IDが無効な場合や、そのエージェントがCDCジョブをサポートしていない場合、デプロイメントは失敗します。
- コンバインドロードの場合、このプロパティを指定すると、CDCフェーズが指定されたエージェントで実行されます。
- 指定されたSecure Agentが利用可能な
maxTaskUnitsが残っていない場合、そのAgentに割り当てられた新しいCDCジョブは実行を待機します。 - デプロイ後に割り当てられたAgentがダウンした場合、ジョブはグループ内の他の利用可能なAgentで実行されます(高可用性)。ただし、ジョブの実行が開始されると、そのジョブはグループ内の他のAgentに引き継がれることはなく、指定されたエージェントで実行され続けます。