ヘッダーをスキップ
Oracle® Warehouse Builderソースおよびターゲット・ガイド
11gリリース2 (11.2)
B61349-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 ODBC接続によるMicrosoftデータ・ソースへの接続

この章では、Microsoft ExcelおよびMicrosoft SQL Serverをソースとした、ODBC接続性の使用例をあげます。内容は次のとおりです。

ODBCによるExcelスプレッドシートへの接続

シナリオ

ある会社は、employees.xlsというExcelファイルに従業員データを格納しています。このファイルには、employee_detailsjob_historyという2つのワークシートが含まれています。employee_detailsワークシートから、Oracle Warehouse Builder内のターゲット表にデータをロードする必要があります。

解決策

Excelファイルに格納されたデータをターゲット表にロードするには、最初にソースとしてExcelファイルを使用する必要があります。Oracle Warehouse Builderにより、Oracle Database異機種間サービスを使用して、Microsoft ExcelのようなOracle以外のソースに格納されたデータに接続できます。

事例

この事例では、Oracle Warehouse Builder内でソースとしてemployees.xlsというExcelファイルを使用する方法を示します。

手順1: Excel用ODBCドライバのインストール

Microsoft Excelからデータを読み込むには、Excel用ODBCドライバが必要です。デフォルトで、Excel用ODBCドライバがWindowsシステムにインストールされます。

手順2: Excelファイル内のデータの区切り

Excelファイルからインポートするデータを区切るには、取得するデータの範囲の名前を定義します。

  1. employee_detailsワークシートで、Oracleから問い合せる範囲をハイライト表示します。

    範囲には列名およびデータが含まれている必要があります。列名がOracle Database内の列のネーミングのルールに従っていることを確認します。

  2. 「挿入」メニューから、「名前」「定義」の順に選択します。「名前の定義」ダイアログ・ボックスが表示されます。範囲の名前を指定します。

手順3: システムDSNの作成

Microsoft ODBC Administratorを使用して、システム・データ・ソース名(DSN)を設定します。

  1. 「スタート」「設定」「コントロール パネル」、「管理ツール」、「データ ソース (ODBC)」を選択します。

    これにより、「ODBC データ ソース アドミニストレータ」ダイアログ・ボックスが開きます。

  2. 「システム DSN」タブにナビゲートし、「追加」をクリックして「データ ソースの新規作成」ダイアログ・ボックスを開きます。

  3. データ・ソースを設定するドライバとして「Microsoft Excel Driver」を選択します。

    「完了」をクリックすると、「ODBC Microsoft Excel セットアップ」ダイアログ・ボックスが開きます。

    「ODBC Microsoft Excel セットアップ」ダイアログ・ボックスを図5-1に示します。

    図5-1 「ODBC Microsoft Excel セットアップ」ダイアログ・ボックス

    図5-1の説明が続きます。
    「図5-1 「「ODBC Microsoft Excel セットアップ」ダイアログ・ボックス」の説明

  4. データ・ソースの名前を指定します。たとえば、odbc_excelと指定します。

  5. 「ブックの選択」をクリックしてデータの抽出元のExcelファイルを選択します。

  6. 「バージョン」フィールドにソースのExcelファイルのバージョンが正確にリストされていることを確認します。

手順4: 異機種間サービス初期化ファイルの作成

エージェントを構成するには、異機種間サービス初期化ファイル内の初期化パラメータを設定する必要があります。各エージェントには、独自の異機種間サービス初期化ファイルがあります。異機種間サービス初期化ファイルの名前は、initSID.oraで、この場合、SIDがエージェントに使用されるOracleシステム識別子です。このファイルはOWB_HOME\hs\adminディレクトリにあります。

次のように、OWB_HOME\hs\adminディレクトリにinitexcelsid.oraファイルを作成します。

HS_FDS_CONNECT_INFO = odbc_excel
HS_AUTOREGISTER = TRUE
HS_DB_NAME = dg4odbc

ここでは、odbc_excelは、手順3で作成したシステムDSNの名前です。excelsidは、エージェントに使用されるOracleシステム識別子の名前です。

手順5: listener.oraファイルの変更

エージェントのリスナーを設定して、Oracle Databaseからの受信要求をリスニングします。要求を受信すると、エージェントは異機種間サービス・エージェントを起動します。リスナーを設定するには、OWB_HOME\network\adminディレクトリ内にあるlistener.oraファイル内のエントリを次のように変更します。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = excelsid)
      (OWB_HOME = C:\oracle11g\product\11.2.0\db_1)
      (PROGRAM = dg4odbc)
    )
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (OWB_HOME = C:\oracle11g\product\11.2.0\db_1)
      (PROGRAM = extproc)
      )
  )
  1. SID_NAMEパラメータでは、異機種間サービス用の初期化パラメータ・ファイルの作成時に指定したSID (この場合はexcelsid)を使用します。

  2. OWB_HOMEパラメータ値が、Oracle Databaseホーム・ディレクトリへのパスであることを確認します。

  3. PROGRAMキーワードに関連付けられた値は、実行可能なエージェントの名前です。

これらの変更を行った後、リスナーを必ず再開します。


注意:

初期化パラメータGLOBAL_NAMESが、データベースの初期化パラメータ・ファイル内でFALSEに設定されていることを確認します。FALSEはこのパラメータのデフォルト設定です。

手順6: ODBCソース・モジュールの作成

次の手順に従い、ODBCソース・モジュールを作成します。

  1. プロジェクト・ナビゲータからODBCソース・モジュールを作成します。

    「データベース」ノードの下にODBCがリストされます。「ODBCモジュールの作成」を参照してください。

  2. 接続情報を指定するには、接続情報ページで、「編集」をクリックして「Oracle以外のロケーションの編集」ダイアログ・ボックスを開き、次の詳細を提供します。

    指定したサービス名が、listener.oraファイル内で指定したSID_NAMEと同一であることを確認します。

    「ホスト」フィールドおよび「ポート」フィールドを別々に使用してホスト名およびポート番号を入力します。

    Oracle databaseに接続中ではないため、ユーザー名およびパスワードに対して仮の値を指定できます。フィールドを空にできません。

    スキーマからはメタデータをインポートしていないため、「スキーマ」フィールドは空のまま残すことができます。

    「接続テスト」をクリックして、接続詳細を確認します。

手順7: メタデータのインポート・ウィザードを使用したExcelからのメタデータのインポート

メタデータのインポート・ウィザードを使用して、ExcelファイルからOracle Warehouse Builderにメタデータをインポートします。「フィルタ条件」として「表」を選択します。このウィザードにより、使用可能なオブジェクトのリストにある「表」ノードの下のソースのExcelファイル内のすべてのワークシートが表示されます。

  1. 「employee_details」を選択し、右矢印を使用して選択済オブジェクトのリストにこれを移動します。

  2. 「終了」をクリックしてメタデータをインポートします。

    employee_detailsワークシートからのデータは、ODBCソース・モジュール内のemployee_detailsという表に格納されます。

手順8: ターゲット表にデータをロードするためのマッピングの作成

ターゲット表が含まれるモジュールのマッピングを作成します。ソースとして前の手順でインポートしたemployee_details表を使用して、ターゲット表にマップします。

図5-2は、ターゲット表へのデータのロードに使用されるマッピングを示しています。

図5-2 ターゲット表にデータをロードするためのマッピング

図5-2の説明が続きます。
「図5-2 ターゲット表にデータをロードするためのマッピング」の説明

手順9: マッピングのデプロイ

コントロール・センター・マネージャまたはデザイン・センターを使用して、手順8で作成したマッピングをデプロイします。マッピングをデプロイする前に、ソース・モジュールを最初にデプロイすることを確認します。マッピングの詳細は、Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイドを参照してください。

トラブルシューティング

この項では、接続情報の指定中に発生するいくつかのエラーをリストします。

エラー

ORA-28546: connection initialization failed, porbable Net8 admin error
ORA-28511: lost RPC connection to heterogeneous remote agent using
SID=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(PORT=1521)))(CONNECT_DATA=(SID=oracledb)))

ORA-02063: preceeding 2 lines from OWB###

原因

データベースのSID名と同じSID名の指定。

アクション

データベースのSID名と異なるSID名を指定します。

エラー

ORA-28500: connection from ORACLE to a non-Oracle system returned this message: 
[Generic Connectivity Using ODBC][H006] The init parameter <HS_FDS_CONNECT_INFO> 
is not set. Please set it in init<orasid>.ora file.

原因

listener.oraファイルで指定されたSID名とOWB_HOME\hs\admin内のinitSID.oraファイルの名前の不一致。

アクション

initSID.oraファイルの名前と、listener.oraファイル内のSID_NAMEパラメータに指定された値が同じであることを確認します。


ヒント:

listener.oraファイルに変更があった場合は必ずリスナー・サービスを再開してください。

ODBCによるSQL Serverデータベースへの接続

シナリオ

会社にSQL Serverに格納されたデータがあり、Oracle Warehouse Builder内にこのデータをインポートする必要があるとします。データをインポートした後、データ・プロファイリングを実行して異常を修正でき、またマッピングを使用し、条件に応じてデータを変換できます。

解決策

Oracle Warehouse BuilderからSQL Serverデータベースに接続する方法の1つは、ODBCゲートウェイを使用することです。接続後、メタデータをインポートしてデータをロードできます。

事例

SQL Serverへ接続してメタデータをインポートするには、次の各項を参照してください。

  1. 「ODBCデータ・ソースの作成」

  2. 「Oracleデータベース・サーバーの構成」

  3. Oracle Warehouse BuilderのソースとしてのSQL Serverの追加

この解決策を実行して問題が発生した場合は、「トラブルシューティング」を参照してください。

ODBCデータ・ソースの作成

ODBCを使用してSQL Serverデータベースに接続するためにODBCデータ・ソースを作成する必要があります。システムのデータ・ソース名(DSN)を設定する必要があります。

  1. 「スタート」「コントロール パネル」、「管理ツール」、「データ ソース (ODBC)」を選択します。

    これにより、「ODBC データ ソース アドミニストレータ」ダイアログ・ボックスが開きます。

  2. 「システム DSN」タブにナビゲートし、「追加」をクリックして「データ ソースの新規作成」ダイアログ・ボックスを開きます。

  3. データ・ソースを設定するドライバとして「SQL Server」を選択します。

  4. 「完了」をクリックして「SQL Server に接続するための新規データ ソースを作成する」ウィザードを開きます。

  5. 「名前」フィールドで、データ・ソースの名前を指定します。たとえばsqlsourceと指定します。

  6. 「サーバー」フィールドで、接続するサーバーを選択し、「次へ」をクリックします。

  7. オペレーティング・システム・レベルまたはサーバー・レベルのどちらで認証を行うかを指定します。「次へ」をクリックします。

  8. データベース・ファイルを選択して「次へ」をクリックします。

  9. 次の画面でデフォルト値をそのままにして、「完了」をクリックします。

  10. データ・ソースをテストして接続を検証します。

Oracleデータベース・サーバーの構成

次に、SQL Serverデータベースに接続するようにOracleデータベースを構成する必要があります。Oracle Warehouse Builderでは、この構成を使用してSQL Serverデータベースからメタデータを抽出できます。これを行うには次の手順が必要になります。

異機種間サービス構成ファイルの作成

OWB_HOME\hs\adminディレクトリ内に異種ファイルを作成する必要があります。このファイルのネーミング規則は次のとおりです。

  • initで始まる必要があります。

  • 拡張子.oraで終わる必要があります。

  • 空白と特殊文字は使用できません。

たとえば、ファイルにinitsqlserver.oraという名前を付けられます。

ファイルに次のように入力します。

HS_FDS_CONNECT_INFO = sqlsource
HS_FDS_TRACE_LEVEL = 0

ここで、sqlsourceは、ODBCデータ・ソースを作成中に指定したデータ・ソース名です。

listener.oraファイルの編集

listener.oraファイルに新規SIDの説明を追加する必要があります。このファイルはOWB_HOME\network\adminディレクトリに格納されています。

次のようにファイルを変更します。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = sqlserver)
      (OWB_HOME = c:\oracle10g\owb_home)
      (PROGRAM = dg4odbc)
    )
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (OWB_HOME = c:\oracle10g\owb_home)
      (PROGRAM = extproc)
      )
  )

SID_NAMEパラメータには、前の手順で作成した構成ファイルの名前が含まれている必要があります。ただし、init接頭辞は含まれません。たとえば、前の手順で作成した構成ファイルがinitsqlserver.oraだった場合、SID_NAMEパラメータの値は、sqlserverとなる必要があります。

OWB_HOMEは、データベース・インストールのOracleホーム・ロケーションを示します。

PROGRAMキーワードに関連付けられた値により、実行可能なエージェントの名前を定義します。この場合、dg4odbcです。

これらの変更を行った後、リスナー・サービスを再開します。

Oracle Warehouse BuilderのソースとしてのSQL Serverの追加

最後の手順では、Oracle Warehouse BuilderにODBCモジュールを追加し、SQL Serverからこのモジュールにデータをインポートします。

Oracle Warehouse Builder内にODBCソース・モジュールを追加する手順は、次のとおりです。

  1. プロジェクト・ナビゲータのプロジェクト内で、「データベース」ノードにナビゲートします。

  2. 「ODBC」を右クリックし、「新規ODBCモジュール」を選択します。

  3. モジュールの作成ウィザードを使用して新規ODBCモジュールを作成します。

  4. 接続情報ページを使用してロケーションの詳細を指定します。新規ロケーションを作成するには、「編集」をクリックして「Oracle以外のロケーションの編集」ダイアログ・ボックスを開きます。

  5. 「場所の編集」ダイアログ・ボックスで、二重引用符("")内にユーザー名およびパスワードを必ず入力します。たとえば、ユーザー名がmattである場合は、"matt"と入力します。

  6. サービス名には、listener.oraファイルで指定したSID名を入力します。また、メタデータのインポート元とするスキーマを選択します。

  7. 「接続テスト」をクリックして、接続詳細を確認します。

メタデータをODBCモジュールへインポートする手順は、次のとおりです。

  1. モジュールを右クリックし、「インポート」を選択します。

  2. インポート・メタデータ・ウィザードを使用してメタデータをインポートします。

    インポートのために使用可能な表およびビューは、接続情報の指定時に選択したスキーマに応じて異なります。

トラブルシューティング

接続情報の指定中に発生するエラーの一部を次に示します。

エラー

ORA-28500: connection from ORACLE to a non-Oracle system returned this message: 
[Generic Connectivity Using ODBC][Microsoft][ODBC Driver Manager] Data source name 
not found and no default driver specified (SQL State: IM002; SQL Code: 0)

ORA-02063: preceding 2 lines from OWB_###

原因

「User DSN」タブからのDSNの作成

アクション

「システム DSN」タブからDSNを作成します。

エラー

ORA-28500: connection from ORACLE to a non-Oracle system returned this message: 
[Generic Connectivity Using ODBC][Microsoft][ODBC SQL Server Driver][SQL 
Server]Login failed for user 'SA'. (SQL State: 28000; SQL Code: 18456)

ORA-02063: preceding 2 lines from OWB_###

原因

「場所の編集」ダイアログ・ボックス内のユーザー名およびパスワードは、二重引用符で囲まれていません。

アクション

二重引用符で囲まれたユーザー名およびパスワードを入力します。


ヒント:

listener.oraファイルに変更があった場合は必ずリスナー・サービスを再開してください。