Oracle® Fusion Middleware Oracle Data Integrator接続およびナレッジ・モジュール・ガイド 11g リリース1(11.1.1) B62261-04 |
|
前 |
次 |
この章では、Oracle Data IntegratorでのOracle Databaseの使用方法について説明します。
この章には次の項が含まれます:
Oracle Data Integrator (ODI)では、Oracle Databaseのデータがシームレスに統合されます。Oracle Data Integratorのすべての機能(リバース・エンジニアリング、チェンジ・データ・キャプチャ、データ品質および統合インタフェースなど)は、Oracle Databaseエンジンを使用した場合に最良の動作が得られるように設計されています。
Oracle Databaseの概念は、Oracle Data Integratorの概念に次のようにマップされます。1つのOracleインスタンスはOracle Data Integratorの1つのデータ・サーバーに対応します。このインスタンス内で、1つのスキーマはOracle Data Integratorの1つの物理スキーマにマップされます。1つのスキーマ内の関連する一連のオブジェクトが1つのデータ・モデルに対応し、各表、ビューまたはシノニムが、その属性、列および制約とともにODIデータストアとして表示されます。
Oracle Data Integratorでは、Java Database Connectivity (JDBC)を使用してOracleデータベース・インスタンスに接続します。
Oracle Data Integratorには、Oracleデータを処理するためのナレッジ・モジュール(KM)が用意されています。これらのリストを表2-1に示します。KMでは、Oracle固有の機能が使用されます。Oracle Databaseでは、汎用SQL KMを使用することもできます。詳細は、第4章「汎用SQL」を参照してください。
表2-1 Oracle Databaseのナレッジ・モジュール
ナレッジ・モジュール | 説明 |
---|---|
RKM Oracle |
表、ビュー、列、主キー、一意でない索引および外部キーをリバース・エンジニアリングします。 |
JKM Oracle 10g Consistent (Streams) |
Oracle Streamsを使用して、Oracle 10g表の一貫性セット・ジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle 11g Consistent (Streams) |
Oracle Streamsを使用して、Oracle 11g表の一貫性セット・ジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle Consistent |
トリガーを使用してOracle表の一貫性セット・ジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle Consistent (Update Date) |
ソース表の「最終更新日」列に基づくトリガーを使用してOracle表の一貫性セット・ジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle Simple |
トリガーを使用してOracle表の単純なジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle to Oracle Consistent (OGG) |
CDCにOracle GoldenGateを使用する場合に、ODI CDCフレームワーク・インフラストラクチャを作成および管理します。詳細は、第29章「Oracle GoldenGate」を参照してください。 |
CKM Oracle |
Oracle表で定義された制約と照合して、データの整合性をチェックします。 |
LKM File to Oracle (EXTERNAL TABLE) |
EXTERNAL TABLE SQLコマンドを使用して、ファイルからOracleステージング領域へデータをロードします。 |
LKM File to Oracle (SQLLDR) |
SQL*Loaderコマンドライン・ユーティリティを使用して、ファイルからOracleステージング領域へデータをロードします。 |
LKM MSSQL to Oracle (BCP SQLLDR) |
BCPおよびSQL*Loaderユーティリティを使用して、Microsoft SQL ServerからOracleデータベース(ステージング領域)へデータをロードします。 |
LKM Oracle BI to Oracle (DBLINK) |
データベース・リンクを使用して、任意のOracle BI物理レイヤーからOracleターゲット・データベースへデータをロードします。詳細は、第18章「Oracle Business Intelligence Enterprise Edition」を参照してください。 |
LKM Oracle to Oracle (DBLINK) |
データベース・リンクを使用して、Oracleソース・データベースからOracleステージング領域データベースへデータをロードします。 |
LKM Oracle to Oracle (datapump) |
データポンプ形式の外部表を使用して、Oracleソース・データベースからOracleステージング領域データベースへデータをロードします。 |
LKM SQL to Oracle |
任意のANSI SQL-92ソース・データベースからOracleステージング領域へデータをロードします。 |
LKM SAP BW to Oracle (SQLLDR) |
SQL*Loaderユーティリティを使用して、SAP BWシステムからOracleステージングへデータをロードします。詳細は、Oracle Fusion Middleware Oracle Data Integrator Application Adaptersガイドを参照してください。 |
LKM SAP ERP to Oracle (SQLLDR) |
SQL*Loaderユーティリティを使用して、SAP ERPシステムからOracleステージングへデータをロードします。詳細は、Oracle Fusion Middleware Oracle Data Integrator Application Adaptersガイドを参照してください。 |
IKM Oracle AW Incremental Update |
増分更新モードでOracleのターゲット表にデータを統合します。また、アナリティック・ワークスペースのキューブをリフレッシュできます。詳細は、第23章「Oracle OLAP」を参照してください。 |
IKM Oracle Incremental Update |
増分更新モードでOracleのターゲット表にデータを統合します。 |
IKM Oracle Incremental Update (MERGE) |
MERGE文を使用して、増分更新モードでOracleのターゲット表にデータを統合します。 |
IKM Oracle Incremental Update (PL SQL) |
PL/SQLを使用して、増分更新モードでOracleのターゲット表にデータを統合します。 |
IKM Oracle Multi Table Insert |
複数表挿入文(MTI)を使用して、1つのソースのデータを1つ以上のOracleターゲット表に追加モードで統合します。 |
IKM Oracle Slowly Changing Dimension |
タイプ2の緩やかに変化するディメンションとして使用されるOracleのターゲット表に、データを統合します。 |
IKM Oracle Spatial Incremental Update |
MERGE DML文を使用して、増分更新モードでOracle (9i以上)のターゲット表にデータを統合します。このモジュールではSDO_GEOMETRYデータ型がサポートされます。 |
IKM Oracle to Oracle Control Append (DBLINK) |
制御追加モードで、1つのOracleインスタンスから別のOracleインスタンスのOracleターゲット表にデータを統合します。 通常、このIKMはETL構成に使用されます。この構成では、ソース表とターゲット表は異なるOracleインスタンスにあり、インタフェースのステージング領域は、ソース表の論理スキーマまたは第3のスキーマに設定されます。 |
SKM Oracle |
Oracleデータベースのデータ・アクセスWebサービスを生成します。このSKMの使用方法は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の「データ・サービスの使用」を参照してください。 |
Oracleナレッジ・モジュールの使用を開始する前に、この項の情報を必ず読んでください。
インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。
サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network (OTN)からアクセスできます。
http://www.oracle.com/technology/products/oracle-data-integrator/index.html
Oracle用の一部のナレッジ・モジュールでは、このデータベース固有の機能が使用されます。この項では、これらの機能に関連する要件をリストします。
この項では、OracleデータベースでSQL*Loaderユーティリティを使用する前に満たしておく必要がある要件を説明します。
Oracle Data Integratorのエージェントを実行するマシンに、OracleクライアントおよびSQL*Loaderユーティリティがインストールされている必要があります。
トポロジで定義されるサーバー名は、Oracleインスタンスへのアクセスに使用されるOracle TNS名と一致する必要があります。
特定のログ・ファイルがSQL*Loaderによって作成されます。エラーが発生した場合は、このファイルを参照することをお薦めします。制御ファイル(CTL)、ログ・ファイル(LOG)、廃棄ファイル(DSC)および不良ファイル(BAD)は、ソース・ファイルの物理スキーマで定義された作業ディレクトリにあります。
ダイレクト・モードを使用するには、Oracle Data integratorのエージェントをターゲットのOracleサーバー・マシン上で実行する必要があります。ソース・ファイルもそのマシン上にあることが必要です。
この項では、Oracleデータベースで外部表を使用する前に満たしておく必要がある要件を説明します。
External Tableコマンドでロードするファイルは、Oracleインスタンスからアクセスできることが必要です。このファイルをサーバー・マシンのファイル・システム上に置くか、Unique Naming Conventionパス(UNCパス)からアクセス可能にするか、もしくはローカルで格納する必要があります。
パフォーマンスの点から、ターゲット・サーバー・マシン上にOracle Data Integratorエージェントをインストールすることをお薦めします。
この項では、Oracle Streamsのジャーナル化ナレッジ・モジュールを使用するための要件を説明します。
注意: 最初に、Oracle Streamsの要件の包括的なリストが含まれている、『Oracle Databaseデータ・ウェアハウス・ガイド』のチェンジ・データ・キャプチャに関する項を参照することをお薦めします。 |
Oracle Streamsを使用してチェンジ・データ・キャプチャを設定する前に、次の要件を満たしておく必要があります。
Oracle StreamsがOracle Databaseにインストールされている必要があります。
OracleデータベースがSPFILEを使用して稼働する必要があります(AUTO_CONFIGURATIONオプションのみで必須)。
AQ_TM_PROCESSESオプションをデフォルト値のままにしておくか、0および10以外の値に設定する必要があります。
COMPATIBLEオプションを10.1以上に設定する必要があります。
データベースがARCHIVELOGモードで稼働する必要があります。
適用およびキャプチャのプロセス数を考慮するために、PARALLEL_MAX_SERVERSを増やす必要があります。少なくとも、スタンドアロン構成の場合は6、低アクティビティの場合は9、高アクティビティの場合は21増やす必要があります。
UNDO_RETENTIONを最低3600に設定する必要があります。
STREAMS_POOL_SIZEを増やす必要があります。スタンドアロン構成の場合は100MB、低アクティビティの場合は236MB、高アクティビティの場合は548MB増やしてください。
ODIモデルで定義された主キーのすべての列が、SUPPLEMENTAL LOG GROUPに含まれている必要があります。
AUTO_CONFIGURATIONナレッジ・モジュール・オプションを使用する際に、上のすべての要件が自動的にチェックおよび設定されますが、一部のアクションは手動で設定する必要があります。詳細は、「Streams JKMの使用」を参照してください。
AUTO_CONFIGURATIONナレッジ・モジュール・オプションを使用せずにこのKMを実行するには、次のシステム権限が付与されている必要があります。
接続ユーザーに対するDBAロール
接続ユーザーに対するStreams管理者
作業スキーマに対するRESOURCEロール
作業スキーマに対するSELECT ANY TABLE
非同期モードでは、ジャーナル化されたシステムで最高のパフォーマンスが得られますが、追加のOracle Database初期化構成および追加の構成用権限が必要です。
非同期モードでは、ジャーナル化されたデータベースがARCHIVELOGに含まれている必要があります。このオプションをオンにする前に、まず、非同期AutoLog公開の概念を理解しておく必要があります。ARCHIVELOGモードでのデータベースの実行の詳細は、『Oracle Database管理者ガイド』を参照してください。サプリメンタル・ロギングの詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』の非同期チェンジ・データ・キャプチャに関する項を参照してください。これは、アーカイブを正しく管理し、アーカイブ・ファイルがアーカイブ・リポジトリから定期的に削除されていない場合にOracleインスタンスが停止するなどの一般的な問題を回避するのに役立ちます。
非同期モードを使用する場合は、インスタンスに接続するユーザーに、Oracle Streamsの管理認可を付与する必要があります。これは、この権限をすでに持っているユーザー(SYSTEMユーザーなど)としてログインしているときに、DMBS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGEプロシージャを使用して実行できます。
作業スキーマには、他のスキーマに格納されている表を参照するビューを作成できるように、SELECT ANY TABLE権限を付与する必要があります。
その他のすべての前提条件に関する詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』の「チェンジ・データ・キャプチャ」を参照してください。
この項では、Oracle Databaseに接続するための要件をリストします。
JDBCドライバ
Oracle Data Integratorは、Oracle Type 4 JDBCドライバのデフォルト・バージョンとともにインストールされます。このドライバではTCP/IPネットワーク・レイヤーが直接使用され、他のコンポーネントのインストールや構成は不要です。
Oracle JDBC OCIドライバを介して、またはODBCでもOracle Serverに接続できます。パフォーマンスの点から、Type 4ドライバの使用をお薦めします。
接続情報
Oracle DBAから次の情報を入手する必要があります。
Oracle Databaseをホストするマシンのネットワーク名またはIPアドレス。
Oracleリスナーのリスニング・ポート。
Oracleインスタンス(SID)の名前。
接続先インスタンスのTNS別名。
Oracleユーザーのログインおよびパスワード。
トポロジの設定には次が含まれます。
1つのOracleデータ・サーバーは、特定のOracleユーザー・アカウントに接続された1つのOracle Databaseインスタンスに対応します。このユーザーは、データ・サーバーの下に作成されたOracle Data Integratorの物理スキーマに対応する、このインスタンスの複数のスキーマにアクセスできます。
『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のデータ・サーバーの作成に関する項に記載されている標準の手順で、Oracleテクノロジ用データ・サーバーを作成します。この項では、Oracleデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
「定義」タブ:
名前: Oracle Data Integratorに表示されるデータ・サーバーの名前。
Instance/dblink: このOracleインスタンスに使用されるTNS別名。データベース・リンクおよびSQL*Loaderの使用時に、Oracleインスタンスを識別するために使用されます。
ユーザー/パスワード: ソース・スキーマでの選択権限、ターゲット・スキーマでの選択および挿入の権限、およびこのデータ・サーバーの下に作成されたOracle物理スキーマ内に示される作業スキーマでの選択、挿入およびオブジェクト作成の権限を持つOracleユーザー(およびユーザーのパスワード)。
「JDBC」タブ:
JDBCドライバ: oracle.jdbc.driver.OracleDriver
JDBC URL: jdbc:oracle:thin:@<network name or ip address of the Oracle machine>:<port of the Oracle listener (1521)>:<name of the Oracle instance>
Oracle JDBC Thinドライバを使用してOracle RACインスタンスに接続するには、次の例のようにOracle RACデータベースのURLを使用します。
jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=host2) (PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=service)))
Oracle Databaseを使用してプロジェクトを設定するには、標準の手順に従います。『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の統合プロジェクトの作成に関する項を参照してください。
Oracle Databaseでの作業を開始するにあたり、使用するプロジェクトに次のナレッジ・モジュールをインポートすることをお薦めします。
RKM Oracle
CKM Oracle
LKM SQL to Oracle
LKM File to Oracle (SQLLDR)
LKM File to Oracle (EXTERNAL TABLE)
IKM Oracle Incremental Update
この項には次のトピックが含まれます:
『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のモデルの作成に関する項に記載されている標準の手順で、Oracleモデルを作成します。
Oracleでは、JDBCドライバの機能のみを使用する標準のリバース・エンジニアリング、およびRKMを使用してOracleディクショナリからオブジェクトの構造を直接取得する、カスタマイズされたリバース・エンジニアリングの両方がサポートされています。
通常は、標準のJDBCリバース・エンジニアリングを使用して作業を開始することを検討してください。Oracleで標準のリバース・エンジニアリングを使用すると、表、ビュー、列、主キーおよび参照が取得されます。
それ以外のメタデータを取得する場合に、カスタマイズされたリバース・エンジニアリングに切り替えることを検討してください。Oracleのカスタマイズされたリバース・エンジニアリングでは、表およびビューの構造(列、主キー、代替キー、索引、チェック制約、シノニムおよび参照)が取得されます。
標準のリバース・エンジニアリング
Oracleで標準のリバース・エンジニアリングを実行するには、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のモデルのリバース・エンジニアリングに関する項に記載されている通常の手順を行います。
カスタマイズされたリバース・エンジニアリング
RKMを使用して、Oracleでカスタマイズされたリバース・エンジニアリングを実行するには、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のモデルのリバース・エンジニアリングに関する項に記載されている通常の手順を行います。この項では、Oracleテクノロジ固有のフィールドのみについて説明します。
Oracleモデルの「リバース」タブでKM: RKM Oracle.<project name>
を選択します。
ODI Oracleナレッジ・モジュールでは、チェンジ・データ・キャプチャ機能がサポートされています。ジャーナル化の設定方法およびキャプチャされた変更の使用方法の詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の「チェンジ・データ・キャプチャの使用」を参照してください。
Oracleジャーナル化ナレッジ・モジュールでは、単純ジャーナル化および一貫性セット・ジャーナル化がサポートされています。Oracle JKMでは、トリガーまたはOracle Streamsを使用して、ソース表でのデータ変更をキャプチャします。
Oracle Data Integratorには、Oracle表をジャーナル化するためのナレッジ・モジュールが用意されています。これらのリストを表2-2に示します。
表2-2 Oracleジャーナル化ナレッジ・モジュール
KM | 説明 |
---|---|
JKM Oracle 10g Consistent (Streams) |
Oracle Streamsを使用して、Oracle 10g表の一貫性セット・ジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle 11g Consistent (Streams) |
Oracle Streamsを使用して、Oracle 11g表の一貫性セット・ジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle Consistent |
トリガーを使用してOracle表の一貫性セット・ジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle Consistent (Update Date) |
ソース表の「最終更新日」列に基づくトリガーを使用してOracle表の一貫性セット・ジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM Oracle Simple |
トリガーを使用してOracle表の単純なジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
Oracle GoldenGateを使用して、Oracleデータベースの変更されたレコードを使用することもできます。詳細は、第29章「Oracle GoldenGate」を参照してください。
Streams JKMの使用
Streams KMはデフォルト値で機能します。推奨設定は次のとおりです。
デフォルトでは、AUTO_CONFIGURATION KMオプションはYesに設定されています。Yesに設定されている場合、Oracleデータベースを自動で構成し、すべての前提条件を確実に満たすことができます。このオプションでは、データベースの初期化パラメータが自動的に変更されるため、本番環境での使用はお薦めしません。Oracle Data Integrator実行ログの「ジャーナルの作成」ステップをチェックして、正しく実行されなかった構成タスク(警告ステータス)を検出する必要があります。
デフォルトでは、CONFIGURATION_TYPEオプションはLow Activity
に設定されています。使用するデータベースのトランザクション・アクティビティが低レベルの場合は、このオプションをそのままにしておきます。
開発データベースなどのスタンドアロン・データベース、またはラップトップにインストールする場合は、このオプションをStandalone
に設定します。
データベースがトランザクション処理に集中的に使用される場合は、このオプションをHigh Activity
に設定します。
デフォルトでは、STREAMS_OBJECT_GROUPオプションはCDC
に設定されています。入力した値は、このJKMを使用してジャーナル化された複数のCDCセットにまたがって共有できる、オブジェクト名の生成に使用されます。このオプションの値がCDCの場合は、表2-3にリストされている命名規則が適用されます。
このオプションに使用できるのは大文字のASCII文字のみで、15文字を超えることはできません。
VALIDATEを使用すると、KMが正しく使用されていることを検証する追加のステップが有効になります。このオプションでは、一切の構成作業を伴わずに様々な要件がチェックされます(構成ステップの詳細は、AUTO_CONFIGURATIONオプションを参照)。要件が満たされていない場合は、エラー・メッセージがログに書き込まれ、JKMの実行はエラーのため停止します。
複雑なKMを最初からより簡単に使用できるように、このオプションはデフォルトでYesに設定されています。
更新日JKMの使用
このJKMでは、ジャーナル化されたすべての表に、最終更新日を含む列が存在することが前提になります。この列の名前は、UPDATE_DATE_COL_NAMEナレッジ・モジュール・オプションで指定されます。
Oracle Data Integratorには、Oracle表で定義された制約と照合してデータの整合性をチェックするためのOracle CKMが用意されています。詳細は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の「フロー制御および統合後制御の設定」を参照してください。
Oracle Data Integratorには、Oracleのチェックを実行するためのナレッジ・モジュールが用意されています。これらのリストを表2-4に示します。汎用SQL KMを使用することもできます。詳細は、第4章「汎用SQL」を参照してください。
統合インタフェースのソース、ステージング領域またはターゲットとしてOracleを使用できます。Oracleテクノロジに基づくETL形式の統合インタフェースを作成することもできます。
インタフェースまたはチェック用に選択したKMによって、このインタフェースまたはチェックの機能およびパフォーマンスが決まります。この項に示す推奨事項は、Oracleデータ・サーバーに関連する様々な状況でのKMの選択に役立ちます。
インタフェースのソース、ターゲットまたはステージング領域としてOracleを使用できます。インタフェース・フロー・タブでの、Oracleと別のタイプのデータ・サーバー間でデータをロードするためのLKMの選択は、インタフェースのパフォーマンスに関してきわめて重要です。
次のKMには、Oracleデータベースからターゲットまたはステージング領域のデータベースへデータをロードするための、最適化されたメソッドが実装されています。これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMも使用できます。
ターゲットまたはステージング領域のテクノロジ | KM | 説明 |
---|---|---|
Oracle |
LKM Oracle to Oracle (dblink) |
ソース・サーバー上にビューを作成し、ターゲット・サーバー上のこのビューにシノニムを作成します。 |
Oracle |
LKM Oracle to Oracle (datapump) |
データポンプ形式の外部表を使用します。 |
次のKMには、ソースまたはステージング領域からOracleデータベースへデータをロードするための、最適化されたメソッドが実装されています。これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMも使用できます。
ソースまたはステージング領域のテクノロジ | KM | 説明 |
---|---|---|
Oracle |
LKM Oracle to Oracle (dblink) |
ソース・サーバー上にビュー、ターゲット上にシノニムを作成します。 |
SAP BW |
LKM SAP BW to Oracle (SQLLDR) |
Oracleのバルク・ローダーを使用します。ファイルをステージング領域にすることはできません。 |
SAP ERP |
LKM SAP ERP to Oracle (SQLLDR) |
Oracleのバルク・ローダーを使用します。ファイルをステージング領域にすることはできません。 |
ファイル |
LKM File to Oracle (EXTERNAL TABLE) |
外部表を使用してファイルのデータをロードします。 |
ファイル |
LKM File to Oracle (SQLLDR) |
Oracleのバルク・ローダーを使用します。ファイルをステージング領域にすることはできません。 |
Oracle |
LKM Oracle to Oracle (datapump) |
データポンプ形式の外部表を使用します。 |
Oracle BI |
LKM Oracle BI to Oracle (DBLINK) |
ターゲットのステージング表のシノニムを作成し、OBIEE移入コマンドを使用します。 |
MSSQL |
LKM MSSQL to Oracle (BCP/SQLLDR) |
BCPを使用してSQL Serverからデータをアンロードし、SQL*Loaderを使用してOracleへデータをロードします。 |
すべて |
LKM SQL to Oracle |
汎用LKMより高速です(統計を使用)。 |
Oracleには様々なデータ統合戦略があり、複数のモードを使用できます。インタフェース・フロー・タブのIKMの選択によって、統合のパフォーマンスおよび可能性が決まります。
次のKMには、Oracleターゲットにデータを統合するための、最適化されたメソッドが実装されています。これらのKM以外に、汎用SQL KMも使用できます。
モード | KM | 説明 |
---|---|---|
更新 |
IKM Oracle Incremental Update |
Oracle用に最適化されています。 |
更新 |
IKM Oracle Spatial Incremental Update |
SDO_GEOMETRYデータ型がサポートされます。 |
更新 |
IKM Oracle Incremental Update (MERGE) |
バルク・セットベースのMERGE機能のため、データが大量にある場合にお薦めします。 |
更新 |
IKM Oracle Incremental Update (PL SQL) |
PL/SQLを使用し、増分更新モードでLONGおよびBLOBをサポートします。 |
特定 |
IKM Oracle Slowly Changing Dimension |
タイプ2の緩やかに変化するディメンションをサポートします。 |
特定 |
IKM Oracle Multi Table Insert |
複数表挿入文をサポートします。 |
追加 |
IKM Oracle to Oracle Control Append (DBLINK) |
DB*Linksを使用してOracle用に最適化されています。 |
緩やかに変化するディメンションの使用
緩やかに変化するディメンションを使用する場合は、ターゲット・データベースの各列に対して「緩やかに変化するディメンション」の値を必ず設定してください。この値は、「サロゲート・キー」、「自然キー」、列の上書きまたは挿入、「現在のレコード・フラグ」、「開始タイムスタンプ」および「終了タイムスタンプ」列を識別するために、IKM Oracle Slowly Changing Dimensionで使用されます。
複数表挿入の使用
IKM Oracle Multi Table Insertは、複数表挿入文を使用して、1つのソースのデータを1対多のOracleターゲット表に統合するために使用します。このIKMは、パッケージ内で順序付けされている統合インタフェースで使用する必要があります。このパッケージは、次の条件を満たす必要があります。
パッケージの最初のインタフェースには一時ターゲットがあり、KMオプションDEFINE_QUERYがYES
に設定されている必要があります。
この最初のインタフェースによって、複数表挿入文のSELECT句の構造(つまりソース・フロー)が定義されます。
後続の統合インタフェースは、この一時データストアをソースとし、KMオプションIS_TARGET_TABLEがYES
に設定されている必要があります。
パッケージの最後のインタフェースでは、複数表挿入文を実行するために、KMオプションEXECUTEがYES
に設定されている必要があります。
「一時インタフェースを導出表として使用(下位選択)」は、いずれのインタフェースでもtrue
に設定しないでください。
大量のデータが追加される場合は、KMオプションOPTIMIZER_HINTを/*+ APPEND *
/に設定することを検討してください。
Spatialデータ型の使用
Oracle Spatialデータ型で増分更新操作を実行するには、トポロジでSDO_GEOMETRYデータ型を宣言し、IKM Oracle Spatial Incremental Updateを使用する必要があります。SDO_GEOMETREYデータ型の2つの列を比較するとき、ジオメトリが同等とみなされるエラー・マージンを定義するために、GEOMETRY_TOLERANCEオプションが使用されます。詳細は、Oracle Spatialユーザーズ・ガイドおよびリファレンスを参照してください。
統合インタフェースの設計方法に関する一般的な情報は、『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』の「統合インタフェースの使用」を参照してください。この項では、ステージング領域がOracleデータベースまたは任意のANSI-92準拠データベースで、ターゲットがOracleデータベース上にあるETL形式インタフェースの設計方法について説明します。
ETL形式インタフェースでは、ターゲットとは異なるステージング領域内のデータが、ODIによって処理されます。Oracle Data Integratorでは、Oracleステージング領域からOracleターゲットへデータをロードするための2つの方法が提供されます。
使用するKM戦略によって、フロー制御および静的制御がサポートされます。
複数接続IKMの使用
複数接続IKMでは、ステージング領域とソースが異なるデータ・サーバー上にある場合のターゲットの更新が可能です。
Oracle Data Integratorには、Oracleデータを処理するための複数接続IKMであるIKM Oracle to Oracle Control Append (DBLINK)が用意されています。また、汎用SQL複数接続IKMも使用できます。詳細は、第4章「汎用SQL」を参照してください。
複数接続IKMを使用する状況の詳細は、表2-5を参照してください。
ETL形式インタフェースで複数接続IKMを使用するには、次のようにします。
『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のインタフェースの作成に関する項に記載されている標準の手順で、ステージング領域がOracleまたはANSI-92準拠テクノロジ上にあり、ターゲット領域がOracle上にある統合インタフェースを作成します。この項では、ETL形式固有の手順のみを説明します。
インタフェース・エディタの「定義」タブで「ターゲットと異なるステージング領域」を選択し、ソース表の論理スキーマまたは第3のスキーマを選択します。
「フロー」タブで「ソース・セット」のいずれかのタイトルをクリックして、ソース・セット選択します。このオブジェクトのプロパティ・インスペクタが開きます。
ソースからステージング領域へロードするためのLKMをLKMセレクタ・リストから選択します。使用できるLKMは表2-5を参照してください。
必要な場合は、KMオプションを変更します。
「フロー」タブで「ターゲット」のタイトルをクリックしてターゲットを選択します。このオブジェクトのプロパティ・インスペクタが開きます。
プロパティ・インスペクタのIKMセレクタ・リストで、ステージング領域からターゲットへデータをロードするためのETL複数接続IKMを選択します。使用できるIKMは表2-5を参照してください。
KMオプションを設定する際には、次の点に注意してください。
IKM Oracle to Oracle Control Append (DBLINK)に関する注意事項
大量のデータが追加される場合は、KMオプションOPTIMIZER_HINTを/*+ APPEND */
に設定してください。
ターゲット・スキーマ上に自動でdbリンクを作成するには、AUTO_CREATE_DB_LINKをtrue
に設定してください。AUTO_CREATE_DB_LINKをfalse
(デフォルト)に設定した場合は、この名前のリンクがターゲット・スキーマに存在する必要があります。
オプションFLOW_CONTROLおよびSTATIC_CONTROLをYesに設定した場合は、「制御」タブでCKMを選択します。FLOW_CONTROLをYesに設定した場合は、フロー表がターゲット上に作成されます。
LKMおよび単一接続IKMの使用
専用の複数接続IKMがない場合は、標準のエクスポートLKMと標準の単一接続IKMを組み合せて使用します。エクスポートLKMは、ステージング領域からターゲットへフロー表をロードするために使用します。単一接続IKMは、データ・フローをターゲット表に統合するために使用します。
Oracle Data Integratorでは、ETL形式インタフェースのソースとして、任意のANSI SQL-92標準準拠テクノロジがサポートされます。ステージング領域およびターゲットはOracleです。
標準のエクスポートLKMおよび単一接続IKMを組み合せて使用する状況の詳細は、表2-5を参照してください。
ETL形式インタフェースでLKMおよび単一接続IKMを使用するには、次のようにします。
『Oracle Fusion Middleware Oracle Data Integrator開発者ガイド』のインタフェースの作成に関する項に記載されている標準の手順で、ステージング領域およびターゲットがOracle上にある統合インタフェースを作成します。この項では、ETL形式固有の手順のみを説明します。
インタフェース・エディタの「定義」タブで「ターゲットと異なるステージング領域」を選択し、ソース表の論理スキーマまたは第3のスキーマを選択します。
「フロー」タブで「ソース・セット」のいずれかを選択します。
プロパティ・インスペクタで、ソースからステージング領域へロードするためのLKMをLKMセレクタ・リストから選択します。使用できるLKMは表2-5を参照してください。
必要な場合は、KMオプションを変更します。
ステージング領域を選択します。プロパティ・インスペクタで、ステージング領域からターゲットへロードするためのLKMをLKMセレクタ・リストから選択します。使用できるLKMは表2-5を参照してください。
必要な場合は、オプションを変更します。
「ターゲット」のタイトルをクリックしてターゲットを選択します。このオブジェクトのプロパティ・インスペクタが開きます。
プロパティ・インスペクタで、ターゲットを更新するための標準の単一接続IKMをIKMセレクタ・リストから選択します。使用できるIKMは表2-5を参照してください。
表2-5 Oracleデータを使用するETL形式インタフェースのKMガイドライン
ソース | ステージング領域 | ターゲット | エクスポートLKM | IKM | KM戦略 | コメント |
---|---|---|---|---|---|---|
ANSI SQL-92標準準拠 |
Oracle |
Oracle |
なし |
IKM Oracle to Oracle Control Append (DBLINK) |
複数接続IKM |
このKMは次の目的に使用します。
フロー制御および静的制御をサポートします。 |
ANSI SQL-92標準準拠 |
Oracleまたは任意のANSI SQL-92標準準拠データベース |
Oracleまたは任意のANSI SQL-92標準準拠データベース |
なし |
IKM SQL to SQL Incremental Update |
複数接続IKM |
ターゲット側一時オブジェクトでの増分更新戦略が可能です。ターゲット・サーバーで一時オブジェクトを作成できない場合に、このKMを使用します。 アプリケーションの更新は、ソースからターゲットへ直接行われ、ターゲット上に一時オブジェクトは作成されません。フロー表がターゲットではなくステージング領域に作成される構成は、データ量が少ない場合のみ使用してください。 フロー制御および静的制御をサポートします。 |
Oracle |
Oracle |
Oracle |
LKM to Oracle to Oracle (DBLINK) |
IKM Oracle Slowly Changing Dimension |
LKM + 標準IKM |
|
Oracle |
Oracle |
Oracle |
LKM to Oracle to Oracle (DBLINK) |
IKM Oracle Incremental Update |
LKM + 標準IKM |
|
Oracle |
Oracle |
Oracle |
LKM to Oracle to Oracle (DBLINK) |
IKM Oracle Incremental Update (MERGE) |
LKM + 標準IKM |
この項では、Oracleナレッジ・モジュールの使用時に発生する可能性がある問題のトラブルシューティングに関する情報を提供します。この章の内容は、次のとおりです。
通常、Oracle Data Integratorではエラーは次のように表示されます。
java.sql.SQLException: ORA-01017: invalid username/password; logon denied at ... at ... ...
java.sql.SQLExceptioncode
は、単純に、JDBCドライバを介してデータベースへの問合せが行われ、エラーが戻されたことを示しています。このエラーはデータベースまたはドライバのエラーであることが多く、次のように解明する必要があります。
まず、太字のテキスト部分のみに注目してください。Oracleのドキュメントでこれを検索してください。ここで(赤色で)示されているように、Oracle固有のエラー・コードが含まれている場合は、エラーをすばやく識別できます。
このようなエラーが実行ログで検出された場合は、データベースに送信されたSQLコードを分析して、エラーの原因を特定する必要があります。このコードは、エラーのあるタスクの「説明」タブに表示されます。
この項では、一般的な問題および解決策について説明します。
ORA-12154 TNS: サービス名を解決できませんでした。
TNS別名の解決。この問題は、OCIドライバの使用時、またはデータベース・リンクを使用したKMの使用時に発生する可能性があります。マシンのTNS別名の構成を確認してください。
ORA-02019 リモート・データベースの接続の説明が見つかりません
存在しないデータベース・リンクを使用してKMが使用されています。データベース・リンク作成用のKMオプションを確認してください。
ORA-00900 SQL文が無効です
ORA-00923 FROMキーワードが指定の位置にありません
インタフェースで生成されたコードまたはプロシージャに入力したコードがOracleで無効です。通常、このエラーは、マッピング、フィルタまたは結合での入力エラーに関連します。典型的な例は、引用符が欠落している、またはカッコが閉じられていないなどです。
また、SQL以外の構文へのコールが原因の場合もよくあります。たとえば、次の構文を使用してOracleストアド・プロシージャをコールした場合です。
EXECUTE SCHEMA.PACKAGE.PROC(PARAM1, PARAM2).
ストアド・プロシージャの有効なSQLコールは次のとおりです。
BEGIN SCHEMA.PACKAGE.PROC(PARAM1, PARAM2); END;
EXECUTE SCHEMA.PACKAGE.PROC(PARAM1, PARAM2)
はSQL*PLUS固有の構文であり、JDBCでは機能しません。
ORA-00904 列名が無効です
マッピング、結合またはフィルタでの入力エラーです。列名でない文字列が列名として解釈されたか、列名にスペルミスがあります。
このエラーは、最近構造が変更されたデータストアに関連付けられているエラー表にアクセスした場合にも表示されることがあります。エラー表に変更を反映するか、エラー表を削除して次回の実行時にOracle Data Integratorで再作成されるようにする必要があります。
ORA-00903 表名が無効です
使用される表(ソースまたはターゲット)がOracleスキーマに存在しません。コンテキストのマッピング論理スキーマまたは物理スキーマをチェックし、このコンテキストに対してアクセスされるスキーマにその表が物理的に存在することを確認してください。
ORA-00972 識別子が長すぎます
Oracleのオブジェクト識別子には制限があります(通常30文字)。この制限を超えるとこのエラーが表示されます。インタフェースの実行中に作成された表がこの制限を超えると、このエラーが発生します(詳細は実行ログを参照してください)。
Oracleテクノロジのトポロジをチェックし、オブジェクト名(表および列)の最大長がOracle構成に対応していることを確認してください。
ORA-01790 式には対応する式と同じデータ型を持つ必要があります
(マッピングや結合において)暗黙的に変換できない2つの異なる値を結合しようとしています。これらの値に明示的な変換ファンクションを使用してください。