Oracle Data Integrator で JDBC-ODBC Bridge データをETL
JDBC 標準を使用して、既存のスキルを活かしながらJDBC-ODBC Bridge に読み書きできます。 Oracle Data Integrator(ODI)などの ETL ツールにドロップインで統合できる CData JDBC Driver for JDBC-ODBC Bridge を使えば、リアルタイムのJDBC-ODBC Bridge のデータをデータウェアハウス、ビジネスインテリジェンス、ビッグデータテクノロジーに接続できます。
JDBC 接続により、ODI でJDBC-ODBC Bridge を他のデータベースと同様に扱うことができます。RDBMS と同じように、フラットファイルではなくリアルタイムでJDBC-ODBC Bridge API に直接接続できます。
この記事では、JDBC ベースの ETL(JDBC-ODBC Bridge から Oracle へ)の手順を説明します。JDBC-ODBC Bridge エンティティのデータモデルをリバースエンジニアリングした後、マッピングを作成し、データロード戦略を選択します。ドライバーが SQL-92 をサポートしているため、組み込みの SQL to SQL Loading Knowledge Module を選択するだけで簡単に実現できます。
ドライバーのインストール
ドライバーをインストールするには、インストールフォルダにあるドライバー JAR(cdata.jdbc.jdbcodbc.jar)と .lic ファイル(cdata.jdbc.jdbcodbc.lic)を、ODI の適切なディレクトリにコピーします。
- UNIX/Linux(エージェントなし): ~/.odi/oracledi/userlib
- UNIX/Linux(エージェントあり): ~/.odi/oracledi/userlib および $ODI_HOME/odi/agent/lib
- Windows(エージェントなし): %APPDATA%\Roaming\odi\oracledi\userlib
- Windows(エージェントあり): %APPDATA%\odi\oracledi\userlib および %APPDATA%\odi\agent\lib
ODI を再起動してインストールを完了します。
モデルのリバースエンジニアリング
モデルをリバースエンジニアリングすると、ドライバーのJDBC-ODBC Bridge のデータに対するリレーショナルビューのメタデータが取得されます。リバースエンジニアリング後は、リアルタイムのJDBC-ODBC Bridge のデータをクエリし、JDBC-ODBC Bridge テーブルに基づいてマッピングを作成できます。
-
ODI でリポジトリに接続し、New -> Model and Topology Objects をクリックします。
- 表示されるダイアログの Model 画面で、以下の情報を入力します。
- Name: JDBCODBC と入力します。
- Technology: Generic SQL を選択します(ODI バージョン 12.2 以降の場合は Microsoft SQL Server を選択)。
- Logical Schema: JDBCODBC と入力します。
- Context: Global を選択します。
- 表示されるダイアログの Data Server 画面で、以下の情報を入力します。
- Name: JDBCODBC と入力します。
- Driver List: Oracle JDBC Driver を選択します。
- Driver: cdata.jdbc.jdbcodbc.JDBCODBCDriver と入力します。
- URL: 接続文字列を含む JDBC URL を入力します。
To connect to an ODBC data source, specify either the DSN (data source name) or specify an ODBC connection string: Set Driver and the connection properties for your ODBC driver.
組み込みの接続文字列デザイナー
JDBC URL の作成には、JDBC-ODBC Bridge JDBC Driver に組み込まれている接続文字列デザイナーをご利用ください。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行します。
java -jar cdata.jdbc.jdbcodbc.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
一般的な接続文字列は以下のとおりです。
jdbc:jdbcodbc:Driver={ODBC_Driver_Name};Driver_Property1=Driver_Value1;Driver_Property2=Driver_Value2;...
- Physical Schema 画面で、以下の情報を入力します。
- Name: ドロップダウンメニューから選択します。
- Database (Catalog): CData と入力します。
- Owner (Schema): JDBC-ODBC Bridge でスキーマを選択した場合は選択したスキーマを入力し、それ以外の場合は JDBCODBC と入力します。
- Database (Work Catalog): CData と入力します。
- Owner (Work Schema): JDBC-ODBC Bridge でスキーマを選択した場合は選択したスキーマを入力し、それ以外の場合は JDBCODBC と入力します。
- 開いたモデルで Reverse Engineer をクリックして、JDBC-ODBC Bridge テーブルのメタデータを取得します。
JDBC-ODBC Bridge のデータの編集と保存
リバースエンジニアリングが完了すると、ODI でJDBC-ODBC Bridge のデータを操作できるようになります。
JDBC-ODBC Bridge のデータを編集・保存するには、Designer ナビゲーターで Models アコーディオンを展開し、テーブルを右クリックして Data をクリックします。Refresh をクリックするとデータの変更を取得できます。変更が完了したら Save Changes をクリックします。
ETL プロジェクトの作成
以下の手順に従って、JDBC-ODBC Bridge からの ETL を作成します。ODI Getting Started VM に含まれるサンプルデータウェアハウスに Account エンティティをロードします。
SQL Developer を開き、Oracle データベースに接続します。Connections ペインでデータベースのノードを右クリックし、new SQL Worksheet をクリックします。
または、SQLPlus を使用することもできます。コマンドプロンプトから以下を入力します。
sqlplus / as sysdba
- 以下のクエリを入力して、ODI_DEMO スキーマにあるサンプルデータウェアハウスに新しいターゲットテーブルを作成します。以下のクエリでは、JDBC-ODBC Bridge の Account テーブルに対応するいくつかのカラムを定義しています。
CREATE TABLE ODI_DEMO.TRG_ACCOUNT (NAME NUMBER(20,0),Id VARCHAR2(255));
- ODI で Designer ナビゲーターの Models アコーディオンを展開し、ODI_DEMO フォルダ内の Sales Administration ノードをダブルクリックします。モデルエディターでモデルが開きます。
- Reverse Engineer をクリックします。TRG_ACCOUNT テーブルがモデルに追加されます。
- プロジェクト内の Mappings ノードを右クリックし、New Mapping をクリックします。マッピングの名前を入力し、Create Empty Dataset オプションのチェックを外します。Mapping Editor が表示されます。
- Sales Administration モデルから TRG_ACCOUNT テーブルをマッピングにドラッグします。
- JDBC-ODBC Bridge モデルから Account テーブルをマッピングにドラッグします。
- ソースのコネクタポイントをクリックし、ターゲットのコネクタポイントにドラッグします。Attribute Matching ダイアログが表示されます。この例では、デフォルトのオプションを使用します。ターゲットカラムのプロパティにターゲット式が表示されます。
- Mapping Editor の Physical タブを開き、TARGET_GROUP 内の ACCOUNT_AP をクリックします。
- ACCOUNT_AP のプロパティで、Loading Knowledge Module タブの LKM SQL to SQL (Built-In) を選択します。
マッピングを実行して、JDBC-ODBC Bridge のデータを Oracle にロードできます。