Informaticaは、ネイティブドライバとサードパーティドライバの両方を使用してデータベースと通信できます。ネイティブドライバは、OracleのOCIライブラリやMicrosoftのSQLServerネイティブクライアントなどのデータベースベンダーによって提供されます。ネイティブドライバは、Informaticaプラットフォームで利用可能な場合、Informaticaが推奨するデータアクセス方法です。
Informaticaディストリビューションには、多数のデータベース用のサードパーティドライバが含まれています。これらのサードパーティドライバは、ODBCを使用してデータベースと通信します。 ODBCはデータベースに依存しないインターフェイスであり、InformaticaなどのODBC準拠のアプリケーションが、ODBCドライバーを使用できる任意のデータベースと連携できるようにします。 ODBCは、Informaticaのデータクエリをターゲットデータベースが理解できるものに変換します。
ODBCには、ODBCドライバーとODBCドライバーマネージャーの2つのコンポーネントがあります。 ODBCドライバーはデータベース固有です。つまり、MicrosoftAccessODBCドライバーはMicrosoftAccessデータベースとのみ通信します。 ODBCドライバーマネージャーは、InformaticaとODBCドライバー間のインターフェイスです。 Driver Managerは、ODBCドライバーのロードを担当し、データベースと対話するコンポーネントからInformaticaを分離します。このアーキテクチャにより、Informaticaは、アプリケーションに変更を加えることなく、さまざまなデータベースに接続できます。
Windowsでは、MicrosoftはオペレーティングシステムにODBCドライバーマネージャーを提供します。これは、Informaticaがこのプラットフォームで使用するものです。
UNIXおよびLinuxでは、InformaticaディストリビューションにODBCドライバーマネージャーが含まれています。
したがって、ODBCアーキテクチャでは、アプリケーションがさまざまなデータベース固有のODBCドライバーをプラグインすることにより、複数のデータベースバックエンドをサポートできることがわかります。これは、Informaticaで実際にどのように機能しますか? InformaticaがアプリケーションにバンドルされていないODBCドライバーを使用できるようにするには、何をする必要がありますか。
Windowsでは、これは簡単です。 Microsoft ODBC Driver Managerの下にドライバーをインストールし、WindowsのコントロールパネルにあるODBCデータソースアドミニストレーターアプレットでODBCデータソースを構成します。これで、ODBCデータソースをInformaticaで使用できるようになります。これ以上の構成は必要ありません。 64ビットWindowsマシンでよくある混乱の原因は、32ビットアプリケーションで64ビットODBCドライバーを使用しようとした場合、またはその逆の場合に発生する「アーキテクチャの不一致」エラーです。 Informaticaクライアントアプリケーションが64ビットの場合は、64ビットのODBCドライバーで使用し、64ビットバージョンのODBCデータソースアドミニストレーターでデータソースを構成する必要があります。 64ビットのODBCデータソースアドミニストレータは、コントロールパネルにある唯一のODBCアプレットであるか、または2つのODBCアプレットがある場合は、64ビットであると明確にラベル付けされます。 Informaticaクライアントが32ビットの場合に使用する32ビットODBCデータソースアドミニストレータを実行するには、次のコマンドを使用します。
%windir%\syswow64\odbcad32.exe
UNIXとLinuxでは、同じ問題が当てはまります。アプリケーションのアーキテクチャは、ODBCドライバーのアーキテクチャと同じである必要があります。したがって、Informaticaクライアントが32ビットか64ビットかを確認してから、アーキテクチャが同じODBCドライバを使用する必要があります。 (オペレーティングシステムがどのアーキテクチャであるかを知るだけでは不十分であることに注意してください。64ビットオペレーティングシステムで32ビットアプリケーションを実行できるため、必要なのはInformaticaのアーキテクチャです。)
InformaticaでサードパーティのODBCドライバーを使用しようとしている場合の別の問題は、Informaticaがドライバーを使用できるように、環境を設定し、関連するODBC構成ファイルを編集する方法です。前述のように、Informaticaディストリビューションには、ODBCドライバーマネージャーと、さまざまなデータベース用のODBCドライバーの選択の両方が含まれています。したがって、Informaticaは次のことを期待しています。
- Informaticaディレクトリ構造の下の場所からODBCドライバをロードします。
- ディストリビューションにバンドルされているDriverManagerでODBCデータソースを検索します。
(この記事の残りの部分では、サードパーティのODBCドライバーの例としてEasysoft ODBCドライバーを使用します。)これらは通常unixODBCドライバーマネージャーで使用されますが、EasysoftODBCドライバーはInformaticaのODBCドライバーマネージャーと互換性があります。
InformaticaでODBCデータソースに接続しようとすると、アプリケーションはデータソース名をODBCDriverManagerに渡します。 ODBC Driver Managerは、データソースによって参照されるODBCドライバーをロードしようとし、接続文字列でデータソース名をドライバーに渡します。接続文字列で他の設定が渡されないと仮定すると、ODBCドライバーは、データソースで必要な他の接続の詳細を検索します。
まず、EasysoftのSalesforceODBCドライバーをInformaticaテストマシンにインストールします。インストール時にデフォルトの選択を受け入れるため、ODBCドライバーは/usr/local/easysoft
にインストールされます。 サンプルデータソースは/etc/odbc.ini
にインストールされています :
$ cd /tmp $ cd odbc-salesforce-1.0.36-linux-x86-64-ul64 $ su # ./install
サンプルデータソースを編集してSalesforceユーザー名、パスワード、セキュリティトークンを指定した後、isql
を使用します。 データソースへの接続をテストします。
# vi /etc/odbc.ini [SF_SAMPLE] Description=Easysoft ODBC-SalesForce Driver Driver=Easysoft ODBC-SalesForce uri=https://login.salesforce.com/services/Soap/u/27 [email protected] password=my_salesforce_password token=1234567ABCDEFGHIJK
$ /usr/local/easysoft/unixODBC/bin/isql.sh SF_SAMPLE +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>
これで、ODBCドライバーがインストールされ、ライセンスが付与され、機能していますが、Informaticaではまだ使用できません。
Informaticaがデータソースを見つけてドライバをロードできるようにするには、次のことを行う必要があります。
-
/etc/odbc.ini
からデータソースをコピーします$ODBCHOME/odbc.ini
へ Informaticaディストリビューションのファイル。 - 次のセクションを
/etc/odbcinst.ini
からコピーします$ODBCHOME/odbcinst.ini
に Informaticaディストリビューションのファイル:[Easysoft ODBC-SalesForce] Description=Easysoft ODBC-SalesForce Driver Driver=/usr/local/easysoft/sf/lib/libessf.so Setup=/usr/local/easysoft/sf/lib/libessfS.so Threading=0 FileUsage=1 DontDLClose=1 UsageCount=1
また、CランタイムライブラリがODBCドライバライブラリをロードできるように、Informatica環境を設定する必要があります。プラットフォームとダイナミックリンカに適切な環境変数を編集します(LD_LIBRARY_PATH
、LIBPATH
) 等々)。 InformaticaプラットフォームはLinuxであるため、次のSalesforceODBCドライバーディレクトリをLD_LIBRARY_PATH
に追加しました。 Informatica PowerCenterユーザーのプロファイルファイル内:
/usr/local/easysoft/sf /usr/local/easysoft/lib
次に、PowerCenterドメインを再起動して、Informaticaが変更を取得できるようにしました。
その後、Salesforce接続は、Informaticaワークフローでリレーショナルターゲットまたはソースとして使用可能になりました(タイプがODBCに設定されたリレーショナル接続でSalesforceデータソースを使用することにより)。