Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
KABATA_Kimikazu
Advisor
Advisor
0 Kudos

※ 最新版はこちらのBlog を参照してください。


 

 

 

SAP HANAやSAP HANA Cloud、そして、SAP Data Warehouse Cloudには「仮想データアクセス」という機能があります。

正確には、Smart Data Integration (以下、「SDI」) という機能を使ってリモートシステムのデータソースと連携する機能です。

今回は、仮想データアクセスについて、SAP Data Warehouse Cloud を利用して試していただくことを目的に、その設定手順について解説していきたいと思います。

連携対象のデータベースは、(一番相談が多い) Oracle Database です。

※ 今回のBlog 対象者はこちらのDWCの基本的な操作を経験済みの方になります。

 

仮想データアクセス


 

「仮想」という言葉通り、「HANA上にテーブルにアクセスしたら、実はテーブル自体はリモートシステムにあって、自動的にリモートシステムにアクセスしてデータを取ってきている」のが仮想データアクセスです。

各システムにアクセスしてデータをダウンロードし、手元のExcelでデータを突き合わせて・・・のようなことをしなくても、DWCにアクセスすれば分散している各システムのデータに簡単にアクセスできることがメリットです。

ただし、毎回、DWC経由でリモートシステムにアクセスすると性能面やソースシステムに対する予期せぬ負荷が掛かってしまうなど、幾つかの心配事もあると思います。

そのような時は、ある一時点のデータをDWC上にコピーして保持する「スナップショット」の機能や、ソースシステムでデータが変更されたら、すぐにその差分情報をDWCに反映させる「リアルタイムレプリケーション」の機能も併せて検討、利用することが可能です。

さらに、SAP HANA Cloud とDWCではこの「仮想テーブル」と「スナップショット」と「レプリカ」をコマンド1つで切り替えられるのが嬉しいところです。

 


 

もう少し概要を理解したい方は、下記の動画もご確認いただけたらと思います。

SAP HANA Cloud - 仮想データアクセス



 

SAP Data Warehouse Cloud - 仮想データアクセスとデータ連携



 

システム構成


 

今回のシステム構成は下記の通りです。


 

DP Agentについて


 

注意点はこのSDIのコンポーネントの1つである、「DP Agent (Data Provisioning Agent)」用のサーバーを用意することです。

このDP Agent のソフトウェアのライセンスはDBサーバー側のSAP HANA / SAP HANA Cloud / DWCに含まれるので、インストールは何台でも可能なのですが、DP Agent 用のサーバーを別途、用意することを推奨しています。仮想サーバーでも良いので是非、ご準備ください。

※ ソースシステム(連携対象DBサーバー)上にインストールすることも可能です。ただし、当然ながら、ソースシステムのリソースを使用するので注意が必要です。

 

DP Agent用のサーバーの最小必要スペックは下記の通りです。

・16GBメモリー、30GBのディスク容量、4 CPU Core

最新の情報、サイジング情報などは PAM(Product Availability Matrix)をご確認ください。

※ 注意 : Oracle Database と連携する場合は、Oracle Database が稼働するOSとDP Agent が稼働するサーバーのOSを一致させる必要があります。

OracleがWindowsで稼働している場合はDP Agent が動作するOSもWindows、Oracle がUNIX/Linuxで稼働している場合は、DP Agentが動作するOSはLinuxになります。

詳しくは前出のPAMをご確認ください。

 

設定の流れ


 

設定は少々手間ですが、一つ一つはそれほど難しくない (と思います) ので、落ち着いて進めていきましょう。

Oracle に詳しくない人は、身近な「Oracle 使い」に声を掛けて、助けてもらってください。

1. DP AgentのインストールとOracle用の追加設定
2. Oracleデータベースの設定
3. DWCへのDP Agent の登録・設定
4. スペースでの接続設定
5. 仮想テーブルの作成
6. 仮想テーブルのスナップショット/レプリカの切り替え

 

DP AgentのインストールとOracle用の追加設定


 

今回はOracle Database on Windows を前提とした設定例をご紹介します。

まず、DP Agent (Data Provisioning Agent) のソフトウェアをダウンロードしてインストールします。通常はSAPのサポートサイトからソフトウェアをダウンロードしますが、DWCの商用環境のライセンスをお持ちでない方は、DWCのFree Trial を使って、下記の「SAP Development Tools」 のサイトからダウンロードしてください。

 

SAP Support サイトはこちら

Support Packages & Patches > By Alphabetical Index (A-Z) > H > SAP HANA SDI > SAP HANA SDI <version_number> > Comprised Software Component Versions > HANA DP AGENT <version_number>


 

SAP Development Tools のサイトはこちら


 

ソフトウェアをダウンロード後、圧縮ファイルを展開したら、「hdbsetup.exe」を管理者として実行します。

次に DP Agent をインストールするディレクトリを指定します。デフォルトのままでも良いのですが、1台のサーバーに複数のDP Agent をインストールする場合は、それを識別するディレクトリ名を付けることをお薦めします。

今回は「C:\user\sap\dataprovagent01」 とします。


 


 

DP Agentのユニークな名前(サービス名で識別可能)を付けます。今回は「SapJpn01」とします。

DP Agent を管理するOSユーザーとパスワードを指定します。OSユーザー名はDomain\User を入力しますが、Domainに参加していない場合は、Hostname\User を指定します。

ポート番号はデフォルトのままで結構です。設定情報を確認後、インストールを開始します。


 

次にOracleのクライアントライブラリーを「手動で」DP Agent のサーバーにコピーします。

コピー先は「C:\usr\sap\dataprovagent01\lib」になります。

 

OracleのクライアントソフトウェアをDP Agentが稼働するサーバーにインストール後に指定されたライブラリー( jar ファイル)を手動でコピーしても結構です。

※ 前出のPAM (Product Availability Matrix) を確認し、対象のOracle Database のバージョンと対応するクライアントライブラリーを確認します。


 
・ojdbc8.jar      : C:\app\oracle\product\19.0.0\dbhome_1\jdbc\lib
・xdb6.jar : C:\app\oracle\product\19.0.0\dbhome_1\rdbms\jlib
・xmlparserv2.jar : C:\app\oracle\product\19.0.0\dbhome_1\lib

※ 「C:\app\oracle\product\19.0.0\dbhome_1」はOracleをインストールしたディレクトリ

 

Oracleのクライアントライブラリーのコピーが終わったら、DP Agent を再起動します。

コマンドプロンプトを「管理者として実行」します。


 

下記の画面の通り、DP Agent をインストールしたディレクトリ配下の「bin」 に移動し、「 agentcli.bat -configAgent 」コマンドを実行します。メニューにしたがって再起動してください。
C:\WINDOWS\system32> cd C:\usr\sap\dataprovagent01\bin
C:\usr\sap\dataprovagent\bin> agentcli.bat --configAgent
Configuring the Agent at the following location:
C:\usr\sap\dataprovagent01

Initializing DPAgent Configuration Tool

************************************************************
DPAgent Configuration Tool
************************************************************
1. Agent Status
2. Start or Stop Agent
:
b. Back
************************************************************
Enter Option: 2
************************************************************
Start or Stop Agent
************************************************************
1. Start Agent
2. Stop Agent
:

************************************************************
Enter Option: 2
Stopping agent service. Command: sc stop SAP_HANA_SDI_Agent_Service_Daemon_SapJpn01
Stop Service return code: 0
Agent was shutdown gracefully
Press Enter to continue...

<少し時間をおきます。停止するまで時間が掛かります>

************************************************************
Start or Stop Agent
************************************************************
1. Start Agent
:
************************************************************
Enter Option: 1
Agent service daemon location: C:\usr\sap\dataprovagent01\bin\DPAgentServiceDaemon.exe
Starting agent service. Command: sc start SAP_HANA_SDI_Agent_Service_Daemon_SapJpn01
Start Service return code: 0

Press Enter to continue...

************************************************************
Start or Stop Agent
************************************************************
:
3. Ping Agent
:
************************************************************
Enter Option: 3
Ping successful

Press Enter to continue...

************************************************************
Start or Stop Agent
************************************************************
:
q. Quit
b. Back
************************************************************
Enter Option: q
0

 

注意 : 初回にDP Agent をStopしたり、Start すると下記のメッセージが表示されることがありますが、DP Agent 自体が起動していれば無視して結構です。

DP Agentが起動しているかどうかは、上記の画面の通り、「Ping Agent」 で確認します。
SAP Note:2945498
----------------
2021-03-05 20:37:08,180 [ERROR] Message.write - Exception while writing to output stream: Connection reset by peer: socket write error (local port 50209 to address 127.0.0.1, remote port 5051 to address 127.0.0.1)

 

 

Oracle データベースの設定


 

Oracle データベースに対して、レプリケーション用のユーザーを作成します。

下記の図の通り、仮想データアクセス(またはレプリケーション)対象のテーブルを保持しているスキーマとは別のユーザーを作成します。

このレプリケーション用のユーザーのスキーマ内には、差分情報を管理するためのテーブルやトリガー、順序、プロシージャなどが作成されます。

このオブジェクト群は「リアルタイムレプリケーション」の設定をする際に作成されますが、「仮想データアクセス」、または「スナップショット」の際には本DBオブジェクトは作成されません。


 

下記のようにOracleのDB管理者でログインし、ユーザーを作成し、必要な権限を設定します。

仮想データアクセス対象のテーブルに対しての参照権限(オブジェクト権限)付与については、オブジェクト所有者が実施することが推奨ですが、今回は手順を簡略化するためにDB管理者が行っています。
-- SYSTEM ユーザーで Oracleにログイン (PDBにログイン)
-- <password> 部分は適宜、修正
connect system/<password>@ORCLPDB

-- Replication 用の Oracleユーザーを作成
-- <password> 部分は適宜、修正
CREATE USER REP_USER01 IDENTIFIED BY <password>
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP"
;

-- 権限設定 ※ システム権限
GRANT UNLIMITED TABLESPACE TO REP_USER01;
GRANT CREATE SESSION TO REP_USER01;
GRANT CREATE SEQUENCE TO REP_USER01;
GRANT CREATE PROCEDURE TO REP_USER01;
GRANT CREATE ANY TRIGGER TO REP_USER01;
GRANT ADMINISTER DATABASE TRIGGER TO REP_USER01;
GRANT CREATE TABLE TO REP_USER01;

-- 権限設定 ※ オブジェクト権限 : レプリケーション対象テーブルに対しての参照権限
GRANT SELECT ON ORDER_ENTRY.CUSTOMERS TO REP_USER01;
GRANT SELECT ON ORDER_ENTRY.PRODUCTS TO REP_USER01;
GRANT SELECT ON ORDER_ENTRY.ORDERS TO REP_USER01;

 

参考情報:

SDIのOracle Databaseとのリアルタイムレプリケーションの実装方法は、以前はOracle のREDO Log ファイルを読み込み、SQL文を生成してSAP HANAに対して差分データ更新する方法が主流でしたが、今後はこのトリガーベースの実装が主流となります。

内部的な実装としては、Oracle Database のLog Miner 機能を利用していたのですが、Oracle Database 19c からLog Miner 機能のサポートポリシーが変更になったことに伴い、SDIの実装方式も余儀なく変更することになりました。

Oracle Database 12c, 18cではLog Readの実装方式も可能ですが、Oracle Database 12c, 18c自体のサポート期限についても注意が必要ですし、今後、Oracle Database 19c への移行を検討しているお客様が多くなることを想定して、全てのOracle Databaseのバージョンに対して、このトリガーベースの実装を推奨しています。

また、DWCの場合は、Oracle Database のバージョンに関わらず、トリガーベースのレプリケーションのみの対応となりますので、ご注意ください (詳細はこちら )

 

次はいよいよ、DWC側のDP Agentの設定作業に入りますが、一度ここで休憩に入りましょう。

なお、ここまでの設定手順はDWCだけでなく、SAP HANA や SAP HANA Cloudでも共通の設定方法になります。

 

お疲れ様でした !!

 

参考情報:

SAP Help Portal : SAP Data Warehouse Cloud - 管理者ガイド - 「ソースへの接続」

SAP Help Portal : SAP HANA SDI and SAP HANA SDQ