1 Oracle Data Integratorの概要
この章の内容は次のとおりです。
Oracle Data Integratorを使用したデータ統合の概要
データ統合によって、複雑なシステム全体で情報の適時性、正確性および一貫性が確保されます。この項では、データ統合の概要を説明し、Oracle Data Integratorによるデータ統合のサポート方法についても説明します。
データ統合とは
企業全体でデータとアプリケーションを統合し、統一されたビューで示すことは、難しい課題です。テクノロジ、データ構造、アプリケーション機能に明らかな差異があるのみでなく、統合アーキテクチャにも基本的な相違があります。一部の統合ニーズ、特に大量のデータを統合する場合のニーズはデータ指向です。他の統合プロジェクトでは、非同期統合または同期統合のために、プロジェクト自体がイベント駆動型アーキテクチャ(EDA)またはサービス指向アーキテクチャ(SOA)に適合するようにします。
データ統合によって、複雑なシステム全体で情報の適時性、正確性および一貫性が確保されます。今でもExtract-Transform-Load (ETL)と呼ばれることがよくありますが、データ統合は当初、エンタープライズ・データ・ウェアハウス・システムをロードするために使用されるアーキテクチャとみなされていました。現在のデータ統合には、データ移動、データ同期、データ品質、データ管理およびデータ・サービスが含まれています。
Oracle Data Integratorについて
Oracle Data Integratorには、複雑なデータ・ウェアハウスを構築、デプロイおよび管理するため、あるいはSOAまたはビジネス・インテリジェンス環境のデータ集中型アーキテクチャの一部として、完全に統一されたソリューションが用意されています。さらに、データ統合のすべての要素(データ移動、データ同期、データ品質、データ管理およびデータ・サービス)が結合され、複雑なシステム全体で情報の適時性、正確性および一貫性が確保されます。
Oracle Data Integrator (ODI)の特徴は、データ統合のあらゆるスタイル(データ中心、イベント中心、サービス中心)を組み込んだアクティブな統合プラットフォームです。ODIでは、大量のデータの効率的な変換、高度なチェンジ・データ・キャプチャ(CDC)フレームワークによるリアルタイムのイベント処理、Oracle SOA Suiteに対するデータ・サービスの提供によって、分断化状態の統合が統一されます。また、堅牢なデータ整合性制御機能によって、データの一貫性と正確性が保証されます。異種のE-LT、宣言的な設計、ナレッジ・モジュールなど、中核となる強力な差別化機能によって、Oracle Data Integratorは、統合プラットフォームのパフォーマンス、柔軟性、生産性、モジュール性およびホットプラガブル性の要件を満たします。
E-LTとは
従来のETLツールの動作では、最初に各種ソースからデータが抽出され、ステージング領域として使用される独自の中間層ETLエンジンでデータが変換された後、変換したデータがターゲット・データ・ウェアハウス、統合サーバーまたはHadoopクラスタにロードされます。このようにETLという用語は、図1-1に示すように、実行される動作の名前と順序の両方を表しています。
ETLプロセスのデータ変換ステップはコンピュータ資源を大量消費する処理であり、専用サーバー上の独自のETLエンジンによってすべて実行されます。ETLエンジンでは、行単位でデータ変換が実行(場合によってデータ品質チェックも実行)されるため、プロセス全体のボトルネックになることがよくあります。また、データはネットワーク上を2回(1回はソースとETLサーバー間、もう1回はETLサーバーとターゲット・データ・ウェアハウスまたはHadoopクラスタ間)移動する必要があります。さらに、データ・フロー参照をターゲット・データ・ウェアハウスの値と比較することによって参照整合性を保証する場合、参照されるデータをターゲットからエンジンにダウンロードする必要があるため、ネットワーク・トラフィックとダウンロード時間がさらに増加し、パフォーマンスの問題が深刻化します。
ETLアーキテクチャによって提起された問題に対応して、新しいアーキテクチャが出現しています。このアーキテクチャでは、手作業によるコーディングと自動コード生成アプローチの最良の特徴が様々な方法で統合されています。E-LTと呼ばれるこの新しいアプローチでは、データ変換が行われる場所と方法が変更され、既存の開発者のスキル、RDBMSエンジン、Big Dataエンジンおよびサーバー・ハードウェアが最大限に活用されます。実際には、E-LTでは操作の順序が変更されて、データ変換ステップがターゲットRDBMSに移動されています。つまり、ソース表からのデータの抽出、宛先サーバーへの表のロード、およびネイティブSQL演算子を使用したターゲットRDBMSでのデータの変換という順序になります。E-LTを使用した場合は、図1-1に示した中間層エンジン(サーバー)が必要ないことに注意してください。
Oracle Data Integratorでは、ETLスタイルとE-LTスタイルの両方のデータ統合がサポートされています。詳細は、『Oracle Data Integratorでの統合プロジェクトの開発』のE-LTおよびETLスタイル・マッピングの設計に関する項を参照してください。
Oracle Data Integratorコンポーネントのアーキテクチャの理解
Oracle Data Integratorプラットフォームは、広義のFusion Middlewareプラットフォームに統合され、このスタックの主要なコンポーネントになります。Oracle Data Integratorにはランタイム・コンポーネントがJava EEアプリケーションとして含まれ、Oracle WebLogicアプリケーション・サーバーの機能が十分に活用されるよう強化されています。Oracle Data Integratorコンポーネントには、エンタープライズ規模のデプロイメント、高可用性、スケーラビリティおよび強固なセキュリティのための独自の機能が含まれています。図1-2に、ODIコンポーネントのアーキテクチャを示します。
リポジトリ
アーキテクチャの核となるコンポーネントは、Oracle Data Integratorリポジトリです。このリポジトリには、ITインフラストラクチャに関する構成情報、すべてのアプリケーションのメタデータ、プロジェクト、シナリオおよび実行ログが格納されています。多数のリポジトリ・インスタンスがITインフラストラクチャに共存できます。リポジトリのアーキテクチャは、メタデータやシナリオを交換する複数の別々の環境(例: 開発、テスト、保守および本番の各環境)を許容するように設計されています。前述の図では、開発環境用と本番環境用の2つのリポジトリが示されています。リポジトリは、バージョン管理システムとしても機能し、この場合、オブジェクトはアーカイブされ、バージョン番号が割り当てられます。Oracle Data Integratorリポジトリは、OLTPリレーショナル・データベースにインストールできます。
Oracle Data Integratorリポジトリは、1つのマスター・リポジトリと複数の作業リポジトリで構成されます。ユーザーを介して開発または構成されたオブジェクトは、これらのリポジトリ・タイプの1つに格納されます。
通常、次の情報を格納するマスター・リポジトリが1つ存在します。
-
ODIプラットフォームのユーザー、プロファイルおよび権限などのセキュリティ情報。
-
テクノロジ、サーバー定義、スキーマ、コンテキスト、言語などのトポロジ情報。
-
バージョニングしたオブジェクトおよびアーカイブしたオブジェクト
作業リポジトリは、開発した実際のオブジェクトが格納されるリポジトリです。同じODIインストールに複数の作業リポジトリが共存可能です(たとえば、別々の環境を使用するため、または特定のバージョニング・ライフ・サイクルと一致させるため)。作業リポジトリには、次の情報が格納されます。
-
モデル: スキーマ定義、データストア構造とメタデータ、フィールドと属性の定義、データ品質制約、相互参照、データ系統などが含まれます。
-
プロジェクト: ビジネス・ルール、パッケージ、プロシージャ、フォルダ、ナレッジ・モジュール、変数などが含まれます。
-
シナリオ実行: シナリオ、スケジューリング情報およびログが含まれます。
作業リポジトリは、その中に実行情報(通常は本番のための情報)のみが含まれる場合は、実行リポジトリと呼ばれます。
ODIリポジトリの管理方法の詳細は、『Oracle Data Integratorの管理』のリポジトリの管理に関する項を参照してください。
ユーザー
管理者、開発者およびオペレータは、Oracle Data Integrator Studioを使用してリポジトリにアクセスします。このFusionクライアント・プラットフォーム(FCP)ベースのUIは、インフラストラクチャ(セキュリティおよびトポロジ)の管理、メタデータのリバースエンジニアリング、プロジェクトの開発、実行のスケジューリング、操作およびモニタリングに使用されます。
ビジネス・ユーザー(および開発者、管理者、オペレータ)にはリポジトリに対する読取りアクセス権限があり、Oracle Data Integratorコンソールと呼ばれるWebベースのUIを使用して、トポロジ構成および本番操作を実行できます。このWebアプリケーションは、Oracle WebLogicなどのJava EEアプリケーション・サーバーにデプロイできます。
ODI Studioには、ODI統合プロジェクトの様々な側面やステップを管理するための4つのナビゲータが用意されています。
トポロジ・ナビゲータ
トポロジ・ナビゲータは、情報システムの物理アーキテクチャと論理アーキテクチャを記述するデータを管理するために使用されます。トポロジ・ナビゲータを使用すると、情報システムのトポロジ、テクノロジとそのデータ型、これらのテクノロジにリンクされているデータ・サーバーとその中に含まれているスキーマ、コンテキスト、言語とエージェント、リポジトリを管理できます。サイト、マシンおよびデータ・サーバーの説明によって、Oracle Data Integratorでは様々な環境で同じマッピングの実行が可能になります。
デザイナ・ナビゲータ
デザイナ・ナビゲータは、データ整合性チェックの設計および変換の作成に使用されます。例:
-
既存のアプリケーションまたはデータベースの自動リバースエンジニアリング
-
変換およびマッピングのグラフィカルな開発および保守
-
マッピング内のデータ・フローの視覚化
-
ドキュメントの自動生成
-
生成されたコードのカスタマイズ
デザイナ・ナビゲータで処理する主要なオブジェクトは、モデルとプロジェクトです。
オペレータ・ナビゲータ
オペレータ・ナビゲータは、本番の管理およびモニタリング・ツールであり、IT本番オペレータ用に設計されています。オペレータ・ナビゲータを使用すると、セッションの実行、および本番のシナリオを管理できます。
セキュリティ・ナビゲータ
セキュリティ・ナビゲータは、Oracle Data Integrator内のセキュリティ情報を管理するためのツールです。セキュリティ・ナビゲータを使用すると、ユーザーとプロファイルを作成し、汎用オブジェクト(データ・サーバー、データ型など)に対するメソッド(編集、削除など)に関するユーザー権限を割り当て、オブジェクト・インスタンス(サーバー1、サーバー2など)に対してこれらの権限を微調整できます。
ランタイム・エージェント
設計時に、開発者は、設計したビジネス・ルールからシナリオを生成します。これらのシナリオのコードは、ランタイム・エージェントによってリポジトリから取得されます。コードの取得後、このエージェントは、データ・サーバーに接続して、これらのサーバー上でコード実行を調整します。また、実行に関するリターン・コードやメッセージおよびリポジトリ内のその他のログ情報(処理レコード数、実行時間など)を取得します。
特徴の異なる次の3つのエージェントがあります。
-
スタンドアロン・エージェント
スタンドアロン・エージェントは、独立したJava仮想マシン(JVM)プロセスで動作します。スタンドアロン・エージェントは、JDBCによって、作業リポジトリとソースおよびターゲット・データ・サーバーに接続します。スタンドアロン・エージェントはJava仮想マシンがインストールされているサーバーにインストールできます。いずれかのデータ・サーバーに対してローカルであるリソース(ファイル・システムまたはデータベース・インスタンスがインストールされたローダー・ユーティリティなど)を使用する必要があり、このマシンにはJava EEアプリケーション・サーバーをインストールしない場合、このタイプのエージェントはより適切です。
-
スタンドアロン・コロケート・エージェント
スタンドアロン・コロケート・エージェントは、独立したJava Virtual Machine (JVM)プロセスで動作しますが、WebLogic Serverドメインの一部であり、WebLogic管理サーバーによって制御されます。スタンドアロン・コロケート・エージェントは、Java仮想マシンがインストールされている任意のサーバーにインストールできますが、WebLogic管理サーバーへの接続が必要です。データ・サーバーの1つにローカルなリソースを使用する必要があるが、すべてのアプリケーションの管理をエンタープライズ・アプリケーション・サーバーで一元化する場合は、このタイプのエージェントが適しています。
-
Java EEエージェント
Java EEエージェントは、Java EEアプリケーション・サーバー(Oracle WebLogic Serverなど)にWebアプリケーションとしてデプロイされます。Java EEエージェントは、アプリケーション・サーバーのあらゆる機能の恩恵を受けることができます(JDBCデータソースまたはOracle WebLogic Serverのクラスタ化など)。エンタープライズ・アプリケーション・サーバーにおけるすべてのアプリケーションのデプロイおよび管理を集中させる必要がある場合や、高可用性の要件がある場合、このタイプのエージェントはより適切です。
これらのエージェントはマルチスレッドJavaプログラムであり、ロード・バランシングをサポートし、情報システム全体に配布できます。このエージェントには、独自の実行スケジュールが保持されています。実行スケジュールはOracle Data Integratorで定義でき、外部スケジューラから呼び出すこともできます。また、Java APIまたはWebサービスから呼び出すこともできます。エージェントの作成および管理方法の詳細は、『Oracle Data Integratorの管理』のトポロジの設定に関する項を参照してください。
Oracle Data Integratorコンソール
ビジネス・ユーザー(および開発者、管理者、オペレータ)にはリポジトリに対する読取りアクセス権限があり、Oracle Data Integratorコンソールと呼ばれるWebベースのUIを使用して、トポロジ構成および本番操作を実行できます。このWebアプリケーションは、Oracle WebLogicなどのJava EEアプリケーション・サーバーにデプロイできます。
Java EEエージェント、スタンドアロン・エージェントおよびODIコンソールの管理とモニターを行うために、Oracle Data Integratorには、Oracle Fusion Middleware Controlコンソールだけでなく、Oracle Enterprise Manager Cloud Controlと統合するためのプラグインも用意されています。
ODIドメイン
ODIドメインには、Oracle Enterprise Manager Cloud Control (EMCC)を使用して管理できるOracle Data Integratorコンポーネントが含まれます。ODIドメインに含まれるコンポーネントは次のとおりです。
-
いくつかのOracle Data Integratorコンソール・アプリケーション。Oracle Data Integratorコンソール・アプリケーションは、マスター・リポジトリおよび作業リポジトリをブラウズするために使用されます。
-
マスター・リポジトリにアタッチされたいくつかのランタイム・エージェント。これらのエージェントをドメインに含めるには、マスター・リポジトリで宣言する必要があります。これらのエージェントは、スタンドアロン・エージェントまたはJava EEエージェントです。マスター・リポジトリでエージェントを宣言する方法の詳細は、『Oracle Data Integratorの管理』のトポロジの設定に関する項を参照してください。
EMCCでは、マスター・リポジトリ・ページおよびエージェント・ページには、マスター・リポジトリと作業リポジトリ両方のアプリケーション・メトリックと情報が表示されます。たとえば、セッションの詳細を表示するために、これらのページからOracle Data Integratorコンソールにナビゲートすることもできます。EMCCでOracle Data Integratorコンソールをブラウズするには、作業リポジトリとマスター・リポジトリへの接続をOracle Data Integratorコンソールで宣言する必要があります。詳細は、『Oracle Data Integratorのインストールと構成』を参照してください。
SDK APIのマテリアライズド・クライアント・ライブラリ
マテリアライズド・クライアント・ライブラリにより、Oracleホーム環境以外からSDK APIを使用できます。
次の3つのマテリアライズド・クライアント・ライブラリは、<OH>/odi/modules/clientsディレクトリにあります。
-
oracle.odi.common.clientLib.jar
-
oracle.odi.tp.clientLib.jar
-
oracle.odi.sdk.clientLib.jar
注意:
これらのライブラリは、Enterpriseインストールでのみ使用できます。
Oracleホーム環境以外からSDK APIを使用するには、クラスパスに次を含めます。
-
前述の3つのすべてのマテリアライズド・クライアント・ライブラリ。
-
ODIリポジトリをインストールするデータベースのJDBCドライバ。
ライブラリおよびJDBCドライバをクラスパスに指定した後、OdiInstance
を作成して、SDK APIを呼び出すことができます。
Oracle Data Integrator Java APIリファレンスを参照してください。