Technical Articles
SAP Data Warehouse Cloud: 仮想データアクセス – Oracle編 – Vol3
前回からの続き
[ 設定の流れ ]
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