8 Microsoft SQL Server
この章の内容は次のとおりです。
8.1 概要
Oracle Data Integrator (ODI)では、Microsoft SQL Serverのデータがシームレスに統合されます。Oracle Data Integratorの機能(リバース・エンジニアリング、チェンジ・データ・キャプチャ、データ整合性チェックおよびマッピングなど)は、Microsoft SQL Serverを使用した場合に最良の動作が得られるように設計されています。
8.1.1 概念
Microsoft SQL Serverの概念は、Oracle Data Integratorの概念に次のようにマップされます。Microsoft SQL Serverの1つのサーバーは、Oracle Data Integratorの1つのデータ・サーバーに対応します。このサーバー内で、データベースと所有者の1つのペアは、Oracle Data Integratorの1つの物理スキーマにマップされます。1つのデータベース内の一連の関連オブジェクトは1つのデータ・モデルに対応し、各表、ビューまたはシノニムは、その属性、列および制約とともに、ODIデータストアとして示されます。
Oracle Data Integratorでは、Java Database Connectivity (JDBC)を使用してMicrosoft SQL Serverに接続します。
8.1.2 ナレッジ・モジュール
Oracle Data Integratorには、Microsoft SQL Serverデータを処理するためのナレッジ・モジュール(KM)が用意されています。これらのリストを表8-1に示します。これらのMicrosoft SQL Server固有のナレッジ・モジュール以外に、Microsoft SQL Serverでは、汎用SQL KMを使用することもできます。詳細は、汎用SQLを参照してください。
表8-1 MSSQL KM
ナレッジ・モジュール | 説明 |
---|---|
IKM MSSQL Incremental Update |
増分更新モードでMicrosoft SQL Serverのターゲット表にデータを統合します。 |
IKM MSSQL Slowly Changing Dimension |
データ・ウェアハウスでタイプ2の緩やかに変化するディメンションとして使用されるMicrosoft SQL Serverのターゲット表に、データを統合します。 |
JKM MSSQL Consistent |
トリガーを使用してMicrosoft SQL Server表の一貫したジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM MSSQL Simple |
トリガーを使用してMicrosoft SQL Server表の単純なジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
LKM File to MSSQL (BULK) |
固有のBULK INSERT SQLコマンドを使用して、ファイルからMicrosoft SQL Serverステージング領域データベースへデータをロードします。 |
LKM MSSQL to MSSQL (BCP) |
固有のBCP out/BCP inコマンドを使用して、Microsoft SQL Serverソース・データベースからMicrosoft SQL Serverステージング領域データベースへ、データをロードします。 |
LKM MSSQL to MSSQL (LINKED SERVERS) |
固有のリンク・サーバー機能を使用して、Microsoft SQL Serverソース・データベースからMicrosoft SQL Serverステージング領域データベースへ、データをロードします。 |
LKM MSSQL to ORACLE (BCP SQLLDR) |
BCPおよびSQLLDRユーティリティを使用して、Microsoft SQL ServerからOracleデータベース(ステージング領域)へデータをロードします。 |
LKM SQL to MSSQL (BULK) |
固有のBULK INSERT SQLコマンドを使用して、任意のANSI SQL-92ソース・データベースからMicrosoft SQL Serverステージング領域データベースへデータをロードします。 |
LKM SQL to MSSQL |
任意のANSI SQL-92ソース・データベースからMicrosoft SQL Serverステージング領域へデータをロードします。このLKMは、「汎用SQL」に記載されている標準のLKM SQL to SQLと似ていますが、Microsoft SQL Serverの追加パラメータを指定できる点で異なります。 |
RKM MSSQL |
Microsoft SQL Serverオブジェクトのメタデータ(表、ビュー、シノニム、列および制約)を取得します。 |
8.2 インストールおよび構成
Microsoft SQL Serverテクノロジでの作業を開始する前に、この項の情報を必ず読んでください。
8.2.1 システム要件および動作要件
インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。
サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network (OTN)からアクセスできます。
http://www.oracle.com/technetwork/middleware/data-integrator/documentation/index.html。
8.2.2 テクノロジ固有の要件
Microsoft SQL Server用の一部のナレッジ・モジュールでは、このデータベース固有の機能が使用されます。これらのナレッジ・モジュールの使用時には、次の制限が適用されます。これらのトピックの追加情報は、Microsoft SQL Serverのドキュメントを参照してください。
8.2.2.1 BULK INSERTコマンドの使用
この項では、Microsoft SQL ServerでBULK INSERTコマンドを使用する前に満たしておく必要がある要件を説明します。
-
BULK INSERTコマンドでロードするファイルは、Microsoft SQL Serverインスタンスのマシンからアクセスできる必要があります。サーバーのファイル・システム上に置くか、UNC (Unique Naming Convention)パスからアクセスできるようにします。
-
UNCファイル・パスはサポートされていますが、パフォーマンスの低下につながるためお薦めしません。
-
パフォーマンスの点から、ターゲット・サーバー・マシン上にOracle Data Integratorのエージェントをインストールすることをお薦めします。
8.2.2.2 BCPコマンドの使用
この項では、Microsoft SQL ServerでBCPコマンドを使用する前に満たしておく必要がある要件を説明します。
-
BCPユーティリティおよびMicrosoft SQL Serverのクライアント・ネットワーク・ユーティリティは、Oracle Data Integratorのエージェントを実行するマシン上にインストールする必要があります。
-
トポロジで定義されるサーバー名は、これらのサーバーに使用されるMicrosoft SQL Serverクライアントの接続文字列と一致する必要があります。
-
クライアント・ユーティリティで定義されるサーバー名には、空白を使用できません。
-
UNCファイル・パスはサポートされていますが、パフォーマンスの低下につながるためお薦めしません。
-
ターゲットのステージング領域データベースには、select into/bulk copyオプションが必要です。
-
BCPプログラムによって生成されたファイルが空の場合は、実行が保留状態のままになります。
-
パフォーマンスの点から、ターゲット・サーバー・マシン上にOracle Data Integratorのエージェントをインストールすることをお薦めします。
8.2.2.3 リンク・サーバーの使用
この項では、Microsoft SQL Serverでリンク・サーバーを使用する前に満たしておく必要がある要件を説明します。
-
Microsoft SQL Serverのインスタンスに接続するためにトポロジで定義されたユーザーには、次の権限が必要です。
-
ユーザーは、ステージング領域データベースのdb_ownerであることが必要です。
-
ユーザーにはdb_ddladminロールが必要です。
-
リンク・サーバーを自動作成するために、ユーザーにはsysdamin権限が必要です。
-
-
MSDTCサービスは、両方のSQL Serverインスタンス(ソースおよびターゲット)で開始する必要があります。このサービスの構成に役立つヒントは次のとおりです。
-
MSDTCサービスのログオン・アカウントは、ネットワーク・サービス・アカウントです(LocalSystemアカウントではありません)。
-
MSDTCは、ネットワーク・トランザクションに対して有効であることが必要です。
-
Windowsファイアウォールは、ネットワーク上でMSDTCサービスが許可されるように構成する必要があります。デフォルトでは、WindowsファイアウォールによってMSDTCプログラムがブロックされます。
-
Microsoft SQL Serverは、MSDTCのスタートアップが完了した後に起動する必要があります。
MSDTCサービスの構成の詳細は、次のリンク先を参照してください。
-
8.3 トポロジの設定
トポロジの設定には次が含まれます。
8.3.1 Microsoft SQL Serverデータ・サーバーの作成
1つのMicrosoft SQL Serverデータ・サーバーは、特定のユーザー・アカウントに接続されたMicrosoft SQL Serverの1つのサーバーに対応します。このユーザーには、データ・サーバーの下に作成されたOracle Data Integrator内の物理スキーマに対応する、このサーバー内の複数のデータベースへのアクセス権が付与されます。
8.3.1.1 データ・サーバーの作成
『Oracle Data Integratorの管理』のデータ・サーバーの作成に関する項に記載されている標準の手順で、Microsoft SQL Serverテクノロジ用データ・サーバーを作成します。
この項では、Microsoft SQL Serverデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
8.3.2 Microsoft SQL Server物理スキーマの作成
『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してMicrosoft SQL Server物理スキーマを作成します。
この物理スキーマ内の作業スキーマおよびデータ・スキーマは、それぞれデータベースと所有者のペアに対応します。作業スキーマは一時データベースを指し示し、データ・スキーマは統合するデータをホストするデータベースを指し示す必要があります。
『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。
8.4 統合プロジェクトの設定
Microsoft SQL Serverデータベースを使用してプロジェクトを設定するには、標準の手順に従います。『Oracle Data Integratorでの統合プロジェクトの開発』の統合プロジェクトの作成に関する項を参照してください。
Microsoft SQL Serverでの作業を開始するにあたり、使用するプロジェクトに次のナレッジ・モジュールをインポートすることをお薦めします。
-
IKM MSSQL Incremental Update
-
IKM MSSQL Slowly Changing Dimension
-
JKM MSSQL Consistent
-
JKM MSSQL Simple
-
LKM File to MSSQL (BULK)
-
LKM MSSQL to MSSQL (BCP)
-
LKM MSSQL to MSSQL (LINKED SERVERS)
-
LKM MSSQL to ORACLE (BCP SQLLDR)
-
LKM SQL to MSSQL (BULK)
-
LKM SQL to MSSQL
-
CKM SQL。この汎用KMは、SQL Serverの整合性チェックを実行するために使用します。
-
RKM MSSQL
8.5 Microsoft SQL Serverモデルの作成およびリバース・エンジニアリング
この項では、次の項目について説明します。
8.5.1 Microsoft SQL Serverモデルの作成
『Oracle Data Integratorでの統合プロジェクトの開発』のモデルの作成に関する項の説明に従って、標準の手順を使用してMicrosoft SQL Serverモデルを作成します。
8.5.2 Microsoft SQL Serverモデルのリバース・エンジニアリング
Microsoft SQL Serverでは、JDBCドライバの機能のみを使用する標準のリバース・エンジニアリング、およびRKMを使用してメタデータ取得する、カスタマイズされたリバース・エンジニアリングの両方がサポートされています。
通常は、標準のJDBCリバース・エンジニアリングを使用して作業を開始することを検討してください。Microsoft SQL Serverで標準のリバース・エンジニアリングを使用すると、表、ビューおよび列が取得されます。
それ以外のメタデータを取得する場合に、カスタマイズされたリバース・エンジニアリングに切り替えることを検討してください。Microsoft SQL Serverのカスタマイズされたリバース・エンジニアリングでは、表、ビューおよびシノニムが取得されます。RKM MSSQLでも、ユーザー定義のデータ型を持つ列がリバース・エンジニアリングされ、ユーザー定義のデータ型が固有のデータ型に変換されます。
標準のリバース・エンジニアリング
Microsoft SQL Serverで標準のリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。
カスタマイズされたリバース・エンジニアリング
RKMを使用してMicrosoft SQL Serverでカスタマイズされたリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』 のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。この項では、Microsoft SQL Serverテクノロジ固有のフィールドのみについて説明します。
- Microsoft SQL Serverモデルの「リバース・エンジニアリング」タブで
KM: RKM MSSQL.<project name>
を選択します。 - COMPATIBLEオプションにMicrosoft SQL Serverのバージョンを入力します。このオプションによって、シノニムのリバースが有効になるかどうかが決まります。シノニムは、Microsoft SQLServerバージョン2005以上のみでサポートされています。
このRKMの使用時には、次の情報に注意してください。
-
接続ユーザーには、すべてのINFORMATION_SCHEMAビューに対するSELECT権限が必要です。
-
リポジトリおよびモデルにユーザー定義のデータ型がある属性については、ネイティブ・データ型のみが保存されます。
-
Microsoft .NET Frameworkの共通言語ランタイム(CLR)でアセンブリのクラスを介して実装されたユーザー定義のデータ型は、リバースされません。
8.6 チェンジ・データ・キャプチャの設定
ODI Microsoft SQL Serverナレッジ・モジュールでは、チェンジ・データ・キャプチャ機能がサポートされています。ジャーナル化の設定方法およびキャプチャされた変更の使用方法の詳細は、『Oracle Data Integratorでの統合プロジェクトの開発』のチェンジ・データ・キャプチャの使用に関する項を参照してください。
Microsoft SQL Serverジャーナル化ナレッジ・モジュールでは、単純ジャーナル化および一貫性セット・ジャーナル化がサポートされています。Microsoft SQL Server JKMでは、トリガーを使用してソース表でのデータ変更をキャプチャします。
Oracle Data Integratorには、Microsoft SQL Server表をジャーナル化するためのナレッジ・モジュールが用意されています。これらのリストを表8-2に示します。
表8-2 Microsoft SQL Serverのジャーナル化ナレッジ・モジュール
KM | ノート |
---|---|
JKM MSSQL Consistent |
トリガーを使用してMicrosoft SQL Server表の一貫したジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
JKM MSSQL Simple |
トリガーを使用してMicrosoft SQL Server表の単純なジャーナル化を行うためのジャーナル化インフラストラクチャを作成します。 |
Oracle GoldenGateを使用すると、Microsoft SQL Serverでログ・ベースのチェンジ・データ・キャプチャを実行できます。詳細は、「Oracle GoldenGate」を参照してください。
8.7 データ品質の設定
Oracle Data Integratorには、Microsoft SQL Serverの表で定義された制約と照合してデータの整合性をチェックするための汎用CKM SQLが用意されています。詳細は、『Oracle Data Integratorでの統合プロジェクトの開発』のフロー制御および静的制御に関する項を参照してください。
詳細は、汎用SQLを参照してください。
8.8 マッピングの設計
マッピングのソース、ステージング領域またはターゲットとしてMicrosoft SQL Serverを使用できます。
マッピングまたはチェック用に選択したKMによって、このマッピングまたはチェックの機能およびパフォーマンスが決まります。この項に示す推奨事項は、Microsoft SQL Serverデータ・サーバーに関連する様々な状況でのKMの選択に役立ちます。
8.8.1 Microsoft SQL Serverとの間でのデータのロード
マッピングのソース、ターゲットまたはステージング領域としてMicrosoft SQL Serverを使用できます。「ロード・ナレッジ・モジュール」タブでの、Microsoft SQL Serverと別のタイプのデータ・サーバー間でデータをロードするためのLKMの選択は、マッピングのパフォーマンスに関してきわめて重要です。
8.8.1.1 Microsoft SQL Serverからのデータのロード
Oracle Data Integratorには、Microsoft SQL Serverからターゲットまたはステージング領域のデータベースへデータをロードするための最適化されたメソッドを実装するナレッジ・モジュールが用意されています。これらの最適化されたMicrosoft SQL Server KMを表8-3にリストします。
これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMを使用して、Microsoft SQL Serverからターゲットまたはステージング領域のデータベースへデータをロードすることもできます。
表8-3 Microsoft SQL ServerからデータをロードするためのKM
ソースまたはステージング領域のテクノロジ | KM | ノート |
---|---|---|
Microsoft SQL Server |
LKM MSSQL to MSSQL (BCP) |
固有のBCP out/BCP inコマンドを使用して、Microsoft SQL Serverソース・データベースからMicrosoft SQL Serverステージング領域データベースへ、データをロードします。 |
Microsoft SQL Server |
LKM MSSQL to MSSQL (LINKED SERVERS) |
固有のリンク・サーバー機能を使用して、Microsoft SQL Serverソース・データベースからMicrosoft SQL Serverステージング領域データベースへ、データをロードします。 |
Oracle |
LKM MSSQL to ORACLE (BCP SQLLDR) |
BCPおよびSQLLDRユーティリティを使用して、Microsoft SQL ServerからOracleデータベース(ステージング領域)へデータをロードします。 |
8.8.1.2 Microsoft SQL Serverへのデータのロード
Oracle Data Integratorには、ソースまたはステージング領域からMicrosoft SQL Serverデータベースへデータをロードするための最適化されたメソッドを実装するナレッジ・モジュールが用意されています。これらの最適化されたMicrosoft SQL Server KMを表8-4にリストします。
これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMも使用できます。
表8-4 Microsoft SQL ServerにデータをロードするためのKM
ソースまたはステージング領域のテクノロジ | KM | ノート |
---|---|---|
ファイル |
LKM File to MSSQL (BULK) |
固有のBULK INSERT SQLコマンドを使用して、ファイルからMicrosoft SQL Serverステージング領域データベースへデータをロードします。 |
Microsoft SQL Server |
LKM MSSQL to MSSQL (BCP) |
固有のBCP out/BCP inコマンドを使用して、Microsoft SQL Serverソース・データベースからMicrosoft SQL Serverステージング領域データベースへ、データをロードします。 |
Microsoft SQL Server |
LKM MSSQL to MSSQL (LINKED SERVERS) |
固有のリンク・サーバー機能を使用して、Microsoft SQL Serverソース・データベースからMicrosoft SQL Serverステージング領域データベースへ、データをロードします。 |
SQL |
LKM SQL to MSSQL (BULK) |
固有のBULK INSERT SQLコマンドを使用して、任意のANSI SQL-92ソース・データベースからMicrosoft SQL Serverステージング領域データベースへデータをロードします。 |
SQL |
LKM SQL to MSSQL |
任意のANSI SQL-92ソース・データベースからMicrosoft SQL Serverステージング領域へデータをロードします。 |
8.8.2 Microsoft SQL Serverでのデータの統合
Oracle Data Integratorには、Microsoft SQL Server用に最適化されたデータ統合戦略を実装するナレッジ・モジュールが用意されています。これらの最適化されたMicrosoft SQL Server KMを表8-5にリストします。
これらのKM以外に、汎用SQL KMも使用できます。
「統合ナレッジ・モジュール」タブのIKMの選択によって、統合のパフォーマンスおよび可能性が決まります。
表8-5 Microsoft SQL Serverにデータを統合するためのKM
KM | ノート |
---|---|
IKM MSSQL Incremental Update |
増分更新モードでMicrosoft SQL Serverのターゲット表にデータを統合します。 |
IKM MSSQL Slowly Changing Dimension |
データ・ウェアハウスでタイプ2の緩やかに変化するディメンションとして使用されるMicrosoft SQL Serverのターゲット表に、データを統合します。 |
緩やかに変化するディメンションの使用
緩やかに変化するディメンションを使用する場合は、ターゲット・データベースの各列に対して「緩やかに変化するディメンション」の値を必ず設定してください。この値は、「サロゲート・キー」、「自然キー」、列の上書きまたは挿入、「現在のレコード・フラグ」、「開始タイムスタンプ」および「終了タイムスタンプ」列を識別するために、IKM MSSQL Slowly Changing Dimensionで使用されます。