前回からの続き
[ 設定の流れ ]
1. DP AgentのインストールとOracle用の追加設定
2. Oracleデータベースの設定
3. DWCへのDP Agent の登録・設定
4. スペースでの接続設定
5. 仮想テーブルの作成
6. 仮想テーブルのスナップショット/レプリカの切り替え
前回は DWC への DP Agentの登録やOracle Database への接続情報を設定しました。今回は仮想テーブルの作成やスナップショット / レプリカ の切り替え操作について進めていきます。

仮想テーブルの作成
画面左メニューの「データビルダ」ボタンを選択し、「新しいグラフィカルビュー」をクリックしてビューを作成します。
以前にご紹介した、ビューの作成方法と同様なので、
こちらのblogも併せてご確認ください。

ローカルのシステムに格納されているテーブルと操作が違うところが 2 つあります。
1つ目は、左側で「
ソース」を選択して、リモートシステムにアクセスするところです。今回の例では
ORDER_ENTRYユーザー配下のテーブルを選択します。

2つ目は、リモートのテーブルをDrag & Dropすると「
テーブルのインポート」の画面が表示されます。これは「
仮想テーブル」をDWC上に作成するためのもので、データ自体はインポートされません。本画面では仮想テーブルの名前を指定します。


「受注明細 - グローバル」ビューを作成しました。
※ 皆さんは、接続先のOracle Database 内に格納されている任意のテーブルを選択して試してみてください。
このタイミングで、ビューを参照してデータアクセスできることを確認してください。

ストーリーの作成 ※ オプション
オプションの操作ですが、せっかくビューを作成したので、そのビューを元にストーリー(ダッシュボード) を作成してみてください。
SACとの連携、SACでのストーリーの作成方法は下記のblogを参考にしてください。
・SAP Blog :
ストーリーの作成
・SAP Blog :
SACとの連携


ただし、
DWC Free Trialをお使いの方は、検索性能が遅いと思われます。
前出の通り、DWCのFree Trial はヨーロッパ環境なので、ソースシステム自体の性能、ネットワーク速度が検索性能に大きな影響を与えます。
もし、性能に満足できない場合は・・・ということで、次の「
切り替え」に進みましょう。
仮想テーブルのスナップショット/レプリカの切り替え
画面左メニューの「
データ統合モニタ」ボタンをクリックし、各仮想テーブルを確認します。
デフォルトでは、データアクセスのモードが「リモート」になっています。
まずは、スナップショットへの切り替えです。
「
CUSTOMERS_VT (顧客マスター) 」の仮想テーブルを選択し、右上のメニューの「
テーブルの複製」から「
新規スナップショットをロード」を選択します。

しばらくするとステータスが「利用可能」になります。利用可能になるまでの時間は対象テーブルのデータ量やソースシステムとDWC間のネットワーク速度に依存します。
DWCのFree Trial 環境は・・・気長に待ちましょう。
他のテーブルも同様に「
スナップショット」の設定を行います。

このタイミングで、ストーリーを作成された方は、ダッシュボードにアクセスしてみてください。
見違えるようなレスポンスで画面が表示されたかと思います。
気を良くした方は、続いて、「
リアルタイムレプリケーション」に切り替えてみましょう。
今回は「
PRODUCT_VT (製品マスター)」 の仮想テーブルを選択して、右上のメニューの「
テーブルの複製」から「
リアルタイムアクセスを有効化」を選択します。
しばらくするとリフレッシュ頻度が「
リアルタイム」になり、ステータスが「
有効」になります。


データビルダで製品マスター(PRODUCTS_VT)を選択して画面上部の「
ビュー」ボタンをクリックしてデータの内容を確認します。

その状態で、Oracle Database 側でPRODUCTSテーブルのデータを更新します。
-- ORDER_ENTRY ユーザーで Oracle にログイン
connect ORDER_ENTRY/<password>@ORCLPDB
-- Products テーブルの更新
UPDATE "ORDER_ENTRY"."PRODUCTS"
SET PRODUCTNAME = 'SAP Tennis Shoes'
WHERE PRODUCTID = 1;
COMMIT;
再度、DWCの画面で製品マスター(PRODUCTS_VT)の「ビュー」ボタンをクリックしてデータの内容を確認すると、Oracle Database 側でデータ更新後、数秒後にはDWC側に反映されることが確認できるかと思います。

ビューの永続化
SAP HANA の売りは「
マートレス」ということで、物理的なデータマート(集計済みのデータ)を作成しなくても、ビューを通じて明細レベルのデータをオンラインで高速に集計することが可能です。
ただし、今回のようにリモートテーブルを参照する際に、ネットワーク回線速度やソースシステムの性能に引っ張られて、満足な性能が得られない可能性があります。
今回、ご紹介したように、各テーブルをスナップショット化したり、リアルタイムレプリケーション化することも可能ですが、ビューを「
永続化」することも可能です。
すなわち、
ビュー経由でアクセスされる対象のデータをDWC上に物理的に保持する、ということです。
マートレスの効果が得られなくなる、データを二重持ちしてしまう、という弊害も出てきますが、やはり、
データ活用においてはアクセススピードも非常に大事です。
1日1回の更新、もしくは、1時間に1度のリフレッシュが許容されるようなデータの場合は、こちらの「
ビューの永続化」の機能も
最終手段として 頭の片隅においていただけたらと思います。
下記のように「
永続ビューモニタ」タブを選択し、「+」マークをクリックしてビューを選択します。


また、リフレッシュのタイミングもスケジューリングすることが可能です。


リモートアクセスの監視
どの位の頻度でリモートシステムにアクセスしているのかをモニターすることができます。
数秒でクエリーが終了するものは大丈夫ですが、数十秒、数分掛からるような問い合わせを発見したら、スナップショットかリアルタイムレプリケーションへの切り替えを検討しましょう。
きっと、データ活用している現場の人達はイライラしていると思います。
ある日突然性能改善して、驚かせてあげましょう。

最後に
いかがでしたでしょうか ?
少し設定の手間は掛かりましたが、DP Agentの設定が完了してしまえば、後は意外と簡単にリモートシステムのデータを参照したり、データをレプリケートすることが確認できたと思います。
今回の手順では割愛しましたが、スナップショットの定期リフレッシュも上記の永続ビューのリフレッシュと同様に簡単なユーザーインターフェースで設定可能なので、是非、試してみてください。
これからはシステム間連携も
アジャイルで行きましょう。
お疲れ様でした !!
参考情報:
・
SAP Help Portal : SAP Data Warehouse Cloud - 管理者ガイド - 「ソースへの接続」
・
SAP Help Portal : SAP HANA SDI and SAP HANA SDQ