はじめに

この記事では、Qlik ReplicateのソースとしてSAPを利用するための設定方法をご説明します。尚、ここでは設定手順の概要とポイントについて解説しますが、手順や制限などの詳細につきましてはQlik ReplicateヘルプサイトにあるQlik Replicateの「Setup and User Guide」の「Using SAP Application as a Target」及び「Using SAP Application (DB) as a Target」の項や、サポートバージョンについては「Support Platforms and Endpoints」 (Qlik Replicate Support Matrix)をご参照ください。

【検証環境】

  • Qlik Replicate 6.6.0 SR1 on Windows
  • SAP ECC 6.0 EHP7 / Oracle Database 11g Enterprise Edition

SAPからの変更データキャプチャー(CDC)の方式

SAPシステムから変更データをキャプチャーする方式として、Qlik Replicateでは以下の2つの方式が提供されています。

  • SAP Application: RFC経由で実データやメタデータを読み取る形式
  • SAP Application (DB): データベースから直接実データやメタデータを読み取る形式

パフォーマンスについては後者のSAP Application (DB)の方が良好とされています。ただし、前者のサポート対象のSAPで利用されているデータベースはOracle、Microsoft SQL、IBM DB2 for LUW、SAP HANAとなっているのに対し、後者はOracleとなっています。いずれの方式もプールテーブルやクラスタテーブルが利用可能です。( SAP — What is the difference between SAP Application and SAP Application (DB) Endpoints?、およびQlik Replicateヘルプサイトの「Support Platforms and Endpoints」 参照)

SAP Transportの導入

SAPシステムへSAP Transport(移送)を適用することにより、SAPシステム側へQlik Replicate for SAP Client (ABAPオブジェクト)をインポートします。Qlikダウンロードサイトより「R4SAP_x.x.x.xxx.zip」のファイルをダウンロードして展開すると幾つかのフォルダが含まれています。SAP ECCへは以下の3つを順にインポートします。それぞれのフォルダにはファイル名がKとRで始まる2つのファイルが含まれており、Kで始まるファイルを移送が保存されるcofilesのフォルダ(例: \usr\sap\trans\cofiles)、Rで始まるファイルをdataのフォルダ(例: \usr\sap\trans\data)に保存します。

  1. InstallCode
  2. InstallCodeECC
  3. InstallConfig

移送管理システム(TMS: Transport Management System / トランザクションコード: stms)を開き、上記の3つの移送を上記の順番にインポートします。

image

Qlik Replicate用のSAPユーザー作成と権限設定

Qlik Replicate様に以下の2つのタイプのユーザーを作成します。

  • Dialogユーザー:  SAPGUI上で、Qlik Replicate for SAP Client GUIにアクセスしてBusiness Groupなどの設定を行うためのユーザー
  • Communications Dataユーザー:Qlik ReplicateからRFCコールを行うためのユーザー(SAP Applicationの方式を利用する場合にのみ必要)

ユーザーの追加・変更はUser Maintenance(トランザクションコード: su01)画面上で行います。以下は、REPLICATEという名称のユーザーをCommunicates Dataのユーザータイプとして追加している例です。

image

また、ロールの管理をRole Maintenance(トランザクションコード: pfcg)画面で行います。以下はREPLICATEという名称のロールを作成している例です。ロールの[Authorizations]タブを開いてAuthorization Data/Profileを紐づけます。

image

[Manually]をクリックして、「S_RFC」、「S_TCODE」、「S_OC_SEND」のAuthorization Objectを追加します。Communications Dataユーザーは以下の通りこれら3つ全て、Dialogユーザーは「S_TCODE」のみが必要です。設定後はロールの画面に戻ります。

image

ユーザーに作成したロールを割り当てます。[User]タブを開いてREPLICATEユーザー(Communications Dataタイプで作成したユーザー)を追加し、[User Comparison]をクリックします。

image

Business Groupの管理

SAPのテーブルをBusiness Groupという単位で管理することができます。Replicate for SAP(Qlik Replicate for SAP Client GUI, トランザクションコード: zr4sap)画面を開き、[Business Groups Configuration]をクリックします。

image

[Create]をクリックしてBusiness Groupを作成します。

image

作成したBusiness Groupの[Tables]を選択し、レプリケーションに利用する対象のテーブルを追加して保存します。

image

Qlik Replicateのサーバー上へのRFC Clientの導入(SAP Applicationの方式利用時のみ)

SAP Applicationの方式を利用する場合にはSAPとRFCでの通信を行うため、Qlik Replicate側にSAP Netweaver RFC SDK(7.20 or 7.50)を導入する必要がありますので、事前にSAP社のSAP Service Marketplaceより入手が必要です。このファイルのnwrfcsdk/libのフォルダに含まれるDLLファイル(sapnwrfc.dllなど)を、Qlik Replicateのbinディレクトリ(C:\Program Files\Attunity\Replicate\bin)に保存するか、別のフォルダに保存してOSのPATHを通す必要があります。

SAPで利用されるデータベースのエンドポイント登録

Qlik Replicate上で、SAPで利用されるデータベースをソースのエンドポイントとして登録する必要があります。Oracle、Microsoft SQL、IBM DB2 for LUW、SAP HANAの利用しているデータベースの種類に応じ、Qlik ReplicateヘルプサイトにあるQlik Replicateの「Setup and User Guide」に説明されている各データベースのソースエンドポイントとしての利用方法に従って登録を行います。ここでは、SAP用のデータベースとしてOracleを利用しており、Oracleを登録しています。

image

image

SAPのエンドポイントの登録

次にSAPエンドポイントの登録を行います。SAP Applicationの方式を利用するか、SAP Application (DB)の方式を利用するかで設定方法が異なります。

SAP Application

SAP Applicationでは以下の様な設定を行います。まず、[Type]から[SAP Application]を利用します。そして、Connection InformationにはSAP Applicationへの接続情報を入力します。[Server name]にはSAPサーバーのホスト名/IPアドレス、[Instance number]や[Client]などの接続情報を入力します。そして、[Username]、[Password]には前段の「Qlik Replicate用のSAPユーザー作成と権限設定」の手順で作成したCommunications Dataユーザーのユーザー名とパスワードを入力し、[Backend endpoint]では先ほど作成したSAPで利用するデータベースのソースエンドポイントを選択します。

image

SAP Application (DB)

SAP Application (DB)では以下の様な設定を行います。まず、[Type]から[SAP Application (DB)]を利用します。そして、Connection Informationでは接続対象のSAPの[Instance number]や[SAP Schema]を入力し、[Backend endpoint]では先ほど作成したSAPで利用するデータベースのソースエンドポイントを選択します。

image

※ SAP SchemaはSAPGUIのトップメニューから[System]>[Status…]を選択し、[Database data]の[Owner]を参照することで確認することができます。

image

Replicateタスクの作成

Qlik Replicateのコンソール上で新規タスクを作成し、作成した「SAP_Application_SRC」もしくは「SAP_Application_DB_SRC」をソースに配置し、任意のターゲット(ここではSnowflakeをターゲットとして利用しています)を配置します。そして、[Table Selection]をクリックします。

image

[Search]をクリックし(条件を指定しない場合には全てのテーブルが表示されます)、レプリケーションの対象とするテーブルを選択します。また「Business Groupの管理」の手順で作成したBusiness Groupで絞り込んでテーブルを表示させることができます。ここでは、「KNA1」(Customer Master)と「LFA1」(Vendor Master)を追加しています。

image

[Run]をクリックするとレプリケーションの処理が開始します。Full Load(初期のフルロード)のMonitor画面が表示され(表示されない場合には[Monitor]>[Full Load]を選択します)、ロードの状況が確認できます。全てロードが完了すると[Completed]のステータスに表示されます。

image

ターゲットのSnowflakeのコンソールを確認すると、「KNA1」(Customer Master)と「LFA1」(Vendor Master)のテーブルが作成されていることが確認でき、データをプレビューすることでデータの中身も確認することができます。

image

SAPGUI上でソースデータの変更を行います。ここでは、Customer Masterの変更や追加を行います。

image

Qlik ReplicateのMonitor上で[Change Processing]タブを開くと、変更や追加の適用情報が確認できます。

image