Oracle Data Integrator でFedEx をETL

詳細情報をご希望ですか?

製品の詳細情報:

FedEx 連携ソリューション


この記事では、Oracle Data Integrator を使用してFedEx をデータウェアハウスに転送する方法を説明します。

JDBC 標準を使用して読み取りと書き込みをFedEx に接続することにより、基準のスキルを活用します。 Oracle Data Integrator (ODI) ののようなETL ツールへのドロップイン統合により、CData JDBC Driver for FedEx は、リアルタイムFedEx をデータウェアハウスやビジネスインテリジェンス、Big Data テクノロジーに接続します。

JDBC 接続により、ODI の他のデータベースと同じようにFedEx を操作できます。RDBMS と同様に、フラットファイルを操作する代わりに、ドライバーを使用してFedEx API にリアルタイムで直接接続できます。

この記事では、JDBC ベースのFedEx データのETL からOracle へのロードまでについてを説明します。FedEx エンティティのデータモデルをリバースエンジニアリングした後、マッピングを作成し、データ読み込み戦略を選択します。ドライバーはSQL-92 をサポートしているため、この最後のステップは、組み込みのSQL からSQL Loading Knowledge Module をセンタすることで簡単に実行できます。

ドライバーをインストール

ドライバーをインストールするには、インストールフォルダにあるドライバーJAR を.lic ファイルをODI userlib ディレクトリにコピーします。

Unix: ~/.odi/oracledi/userlib Windows %APPDATA%\Roaming\odi\oracledi\userlib

ODI を再起動してインストールを完了します。

モデルのリバースエンジニアリング

モデルをリバースエンジニアリングすると、FedEx のドライバーのリレーショナルビューに関するメタデータが取得されます。リバースエンジニアリング後、リアルタイムのFedEx をクエリし、FedEx テーブルに基づいてマッピングを作成できます。

  1. ODI でリポジトリに接続し、[New]->[Model and Topology Objects]とクリックします。
  2. 表示されるダイアログの[Model]画面で、以下の情報を入力します。
    • Name:FedEx を入力します。
    • Technology:Generic SQL を選択します。(ODI がVersion 12.2+ の場合は、Microsoft SQL ServerW選択します。)
    • Logical Schema:FedEx を入力します。
    • Context:[Global]を選択します。
  3. 表示されるダイアログの[Data Server]画面で、以下の情報を入力します。
    • Name:FedEx を入力します。
    • Driver List:Oracle JDBC Driver を選択します。
    • Driver:cdata.jdbc.fedex.FedExDriver と入力します。
    • URL:接続文字列を含むJDBC URL を入力します。

      FedEx サービスでのアクションを認証するためには以下の5つの情報が必要です。

      • Server:リクエストを送信するURL を制御します。一般的なテストオプションは次のとおりです:"https://gatewaybeta.fedex.com:443/xml"、"https://wsbeta.fedex.com:443/xml"、"https://gatewaybeta.fedex.com:443/web-service"、および"https://wsbeta.fedex.com:443/web-service"
      • DeveloperKey:荷送人のID の認証キーの識別子部分。この値は、登録後にFedEx から提供されます。
      • Password:荷送人のID の認証キーのシークレット部分。この値は、登録後にFedEx から提供されます。
      • AccountNumber:この有効な9桁のFedEx アカウント番号は、FedEx サーバーへのログインに使用されます。
      • MeterNumber:この値はFedEx にリクエストを送信するために使用されます。この値は、登録後にFedEx から提供されます。
      • PrintLabelLocation:このプロパティはGenerateLabels またはGenerateReturnLabels ストアドプロシージャを使用するために必要です。これは、生成されたラベルを格納するフォルダの場所に設定する必要があります。

      キャッシュデータベース

      FedEx から利用できる便利なタスクの多くは、大量のデータを必要とします。データを簡単に入力して後で呼び出すことができるように、キャッシュデータベースを活用してこれらのリクエストを行います。キャッシュ接続プロパティを設定する必要があります。

      • CacheProvider: The specific database you are using to cache with. For example, org.sqlite.JDBC.
      • CacheConnection: The connection string to be passed to the cache provider. For example, jdbc:sqlite:C:/users/username/documents/fedexcache.db

      ビルトイン接続文字列デザイナ

      JDBC URL の構成については、FedEx JDBC Driver に組み込まれている接続文字列デザイナを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。

      java -jar cdata.jdbc.fedex.jar

      接続プロパティを入力し、接続文字列をクリップボードにコピーします。

      以下は一般的な接続文字列です。

      jdbc:fedex:Server='https://gatewaybeta.fedex.com:443/xml';DeveloperKey='alsdkfjpqoewiru';Password='zxczxqqtyiuowkdlkn';AccountNumber='110371337';MeterNumber='240134349'; PrintLabelLocation='C:/users/username/documents/mylabels';CacheProvider='org.sqlite.JDBC';CacheConnection='jdbc:sqlite:C:/users/username/documents/fedexcache.db';
  4. [Physical Schema]画面で、以下の情報を入力します。
    • Schema (Schema):FedEx を入力します。
    • Schema (Work Schema):FedEx を入力します。
  5. 開いたモデルで、[Reverse Engineer]をクリックしてFedEx テーブルのメタデータを取得します。

FedEx データの編集・保存

リバースエンジニアリング後、ODI でFedEx を操作できるようになります。 FedEx を編集し保存するには、Designer ナビゲーターでモデルアコーディオンを展開し、テーブルを右クリックして[Ⅾata]をクリックします。[Refresh]をクリックしてデータへの変更を取得します。変更が完了したら[Save Changes]をクリックします。

ETL プロジェクトの作成

以下のステップに従って、FedEx からETL を作成します。Senders エンティティをODI Getting Started VM に含まれているサンプルデータウェアハウスにロードします。

  1. SQL Developer を開き、Oracle データベースに接続します。[Connections]ペインでデータベースのノードを右クリックし、[New SQL Worksheet]をクリックします。

    もしくは、SQLPlus を使用することもできます。コマンドプロンプトから、以下のように入力します。

    sqlplus / as sysdba
  2. 以下のクエリを入力し、ODI_DEMO スキーマにあるサンプルデータウェアハウスに新しいターゲットテーブルを作成します。以下のクエリは、FedEx のSenders テーブルに一致するいくつかのカラムを定義します。 CREATE TABLE ODI_DEMO.TRG_SENDERS (PHONE NUMBER(20,0),FirstName VARCHAR2(255));
  3. ODI でDesigner ナビゲーターのModels アコーディオンを展開し、ODI_DEMO フォルダのSales Administration ノードをダブルクリックします。Model Editor でモデルが開きます。
  4. [Reverse Engineer]をクリックします。TRG_SENDERS テーブルがモデルに追加されます。
  5. プロジェクトの[Mappings]ノードを右クリックし、[New Mapping]をクリックします。マッピングの名前を入力し、[Create Empty Dataset]オプションを無効にします。[Mapping Editor]が表示されます。
  6. TRG_SENDERS テーブルをSales Administration モデルからマッピングにドラッグします。
  7. Senders テーブルをFedEx モデルからマッピングにドラッグします。
  8. ソースコネクタポイントをクリックしてターゲットコネクタポイントにドラッグします。[Attribute Matching]ダイアログが表示されます。ここでは、デフォルトオプションを使用します。その場合、目的の動作はターゲットカラムのプロパティに表示されます。
  9. Mapping Editor の[Physical]タブを開き、TARGET_GROUP のSENDERS_AP をクリックします。
  10. SENDERS_AP プロパティで、[Loading Knowledge Module]タブの[LKM SQL to SQL (Built-In)]を選択します。

これで、マッピングを実行してFedEx をOracle にロードできます。