[ODI] ODI 11g – Interface Builder Accelerator

たくさんの単純作業がある場合、ツールを使うことがよくあります。ExcelのようなMicrosoftのツールで、VBやマクロがないばかりにうんざりするような繰り返しのタスクのスピードアップやカスタマイズができないなんてことは想像できないと思います。データ統合やETL設計はこれと全く同じで、ツールにはカスタマイズなどができるようなSDKが必要です。単純作業は一般的に非常に繰り返しの作業が多いものです。 ODI11g SDKでこういった繰り返し作業をスクリプト化することができます。

ODI 11gR1 SDK Public API
http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e17060/toc.htm

余談ですが、ODI common format designer(以下のURLを参照してください) には、指定されたオブジェクトのような移行方法があるのですが、SDKを使うことで、もっと制御できるようになります。

ODIEXPERTS
Using one of ODI’s lesser-known secrets: the Common Format Designer (CFD) – by Craig Stewart
http://odiexperts.com/using-one-of-odis-lesser-known-secrets-the-common-format-designer-cfd-by-craig-stewart

説明のため、簡単なインターフェースコンストラクションアクセラレータを作成しました。このアクセラレータはODIのインターフェースをインターフェース名、ソース、ターゲットを定義する制御ファイルから生成するもので、デモ目的であれば、簡単かつ良いサンプルでしょう。これは以下のURLからダウンロード可能です。

http://blogs.oracle.com/warehousebuilder/resource/interfaceAccelerator.java

Javaのコードをご覧になっているなら、非常に基本的なものです。文字通り12行のコードです。以下の図は、ODI 11g SDKを使っているinterfaceAcceleratorというJavaプログラムが、接続の詳細情報や、ソースをターゲットデータストアへのマッピングを指定している制御ファイルを入力情報として使用していることを説明するものです。


コードを呼び出すときに下記のコマンドライン引数と標準入力からインターフェース制御ファイルを渡します。
java –classpath <cp> interfaceAccelerator <url> <driver> <schema> <pwd> <workrep> <odiuser> <odiuserpwd> <project> <folder> < <control_file>
制御ファイルは標準入力から提供されるCSVファイルで、次のような構造になっています。
  • インターフェース名, シースモデル,ソーステーブル,ターゲットモデル,ターゲットテーブル
以下はOracle Repositoryを使った場合の呼び出し例です。
java –classpath <cp> interfaceAccelerator jdbc:oracle:thin:@localhost:1521:ora112 oracle.jdbc.OracleDriver ODI_MASTER mypwd WORKREP1 SUPERVISOR myodipwd STARTERS SDK < icontrol.csv
インターフェースはSDKフォルダに作成され、プロジェクトコードはSTARTERSフォルダに作成されます。上の例で使っているicontrol.csvファイルは以下のようです(このフォーマットはあくまでもこの単純なデモプログラムのためのものです)。
  • INTFC1,SCOTT,EMP,STG_MODEL,STG_EMP
  • INTFC2,SCOTT,DEPT,STG_MODEL,STG_DEPT
  • INTFC3,SCOTT,BONUS,STG_MODEL,STG_BONUS
このドライバ制御ファイルを使えば、好きなだけインターフェースを作成することができます。生成されたインターフェースは、ODIの自動マッピング機能を使って、ソースとターゲットを列レベルでマッピングします。デフォルトのソースセットを作成したり、デフォルトのKM(ナレッジモジュール:Knowledge Module)を使用することもできます。非常に便利かつ基礎的な道具を手に入れましたね。

このアクセラレータを実行している間に生成したインターフェースは以下のようになります。テーブル間のマッピングは類似の名前を持つ列同士をマッピングしていて、デフォルトのKMを使ってフローが構成されています。


このコードを使ってカスタマイズすると、あなたの要件に適合させたり、編集方法をコメントに入れ込むこともできます。まとめると、ODIを使ってより生産性を向上させるために作業をチューニングしたい場合、ODI11gのSDKを調べて自動化できるかチェックしてみてください。

原文はこちら。
http://blogs.oracle.com/warehousebuilder/entry/odi_11g_interface_builder_accelerator

0 件のコメント:

コメントを投稿