7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

インフォマティカ・ジャパン株式会社Advent Calendar 2024

Day 3

マッピングの書き込み操作を最適化するステージングプロパティ INFA_DTM_STAGING_ENABLED_CONNECTORS を少しだけ深掘りした話

Last updated at Posted at 2024-12-17

はじめに

弊社アドベントカレンダーの3日目の記事を書いた際に登場した書き込み操作用のステージングプロパティINFA_DTM_STAGING_ENABLED_CONNECTORSで気になった点を追加で検証してみました。

オンラインマニュアルでは、管理者向けヘルプのSecure Agentサービスでプロパティが紹介されており、詳細は各コネクタのマニュアルを参照するように記載されています。コネクタ毎に制約がありますので、必ず参照するようにしましょう。

Oracle Autonomous Database Connectorですが、2024年12月の時点では英語版のオンラインマニュアルにも記載がないためマニュアルへのリンクを省略しています。

検証項目 その1 : Oracle Autonomous Database Connectorで、INFA_DTM_STAGING_ENABLED_CONNECTORSの設定は必須なのか?

Oracle Autonomous Database Connector以外のコネクタでは、ステージングでのパフォーマンスを最適化するためのオプションとして、INFA_DTM_STAGING_ENABLED_CONNECTORSがオンラインマニュアルで紹介されています。

先日検証したときは、ソースにフラットファイル接続を使用していたために、プロパティの設定が必須だったのかと思っていたのですが、ソースで使用しているコネクタの種類に関わらず、Oracle Autonomous Database Connectorをターゲットに使用した場合、INFA_DTM_STAGING_ENABLED_CONNECTORSの設定は必須でした。

image.png

image.png

という事で、Oracle Autonomous Database Connectorを利用する場合には、事前にINFA_DTM_STAGING_ENABLED_CONNECTORSに648300の設定を仕込んでおきましょう
image.png

検証項目 その2 : ステージングでのパフォーマンス最適化は複数のコネクタで同時利用可能なのか?

安心してください、複数のコネクタで同時利用可能です。下記の通り、pulginIdをカンマで区切ってINFA_DTM_STAGING_ENABLED_CONNECTORSの値として設定すればOKです。
image.png

先日検証で使用したマッピングを流用して、O型とAB型を持つデータをSnowflake上のテーブルに書き込むように変更してみました。
image.png
image.png

セッションログで/tmpにステージングファイルを作成している事が出力されますので、両方のコネクタでステージングでのパフォーマンス最適化が実行されたことが確認できました。
image.png

検証項目 その3 : 制約の都合上ステージングでのパフォーマンス最適化を一部の処理で未適用にする事は可能なのか?

安心してください、一部のコネクタではマッピングタスク単位で、ステージングでのパフォーマンス最適化の設定が利用可能です。

下記の通り、マッピングタスクのランタイムオプションの編集画面で、詳細セッションプロパティに対してカスタムプロパティとしてDTMStagingMode=yesを追加すればOKです。
image.png

カスタムプロパティ DTMStagingMode=yesですが、サポートされているコネクタが限定されています。サポート対象のコネクタのpluginIdが<セキュエージェントのインストールディレクトリ>/apps/Data_Integration_Server/<現在のDISバージョン>/ICS/main/bin/rdtm/dtmstaging.iniに記載されており、今のところ4つのコネクタのみです。

image.png

つまり、

ということですね。

早速、INFA_DTM_STAGING_ENABLED_CONNECTORSにはOracle Autonomous Database ConnectorのpluginId 648300のみを設定し、マッピングタスクにカスタムプロパティ DTMStagingMode=yesを設定して、Oracle Autonomous Database ConnectorとSnowflake Data Cloud Connectorの両方で、ステージングの最適化が実行されているかどうかを先ほどのマッピングタスクを使用して確認してみました。

image.png

image.png

セッションログでdtmstaging.iniが読み込まれてサポート対象のpulginIdをチェックしている事が確認できます。
image.png

さらに、両方のコネクタで/tmpにステージングファイルを作成している事が確認できましたので、設定に応じてステージングでのパフォーマンス最適化が実行されている事が検証できました。
image.png

おわりに

カスタムプロパティ DTMStagingMode にYESを設定すると、下記4つのコネクタでは、ターゲットに対する「ステージングを利用した書込み操作の最適化」とソースでの「ステージングを利用した読み込み操作を最適化」の両方が有効になります。

つまり

  • INFA_DTM_STAGING_ENABLED_CONNECTORS(書き込み操作用)
  • INFA_DTM_RDR_STAGING_ENABLED_CONNECTORS(読み取り操作用)

の両方にpulginIdが設定されて動作するイメージです。このプロパティでターゲットのみ無効、ソースのみ無効にすることは出来ませんのでご注意ください。

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?