データ抽出可能なCDSビューの活用方法


はじめに

S/4HANAにおけるリアルタイムアナリティクスのためのキーテクノロジーとして登場したCDSビューは、BW4/HANA、Data Warehouse CloudなどSAPのDWH系製品に対し、S/4HANAからデータ連携を行うためのテクノロジとしても、その活用範囲が広がっています。

本ブログではリアルタイムレプリケーションを中心にデータ抽出可能なCDSビューの活用方法をご紹介したいと思います。

1.データ抽出可能なCDSビューとは?

データ抽出に使用できるCDSビューはアノテーション「@Analytics.dataExtraction.enabled」が”true”に設定されている必要があります。

※CDSビューのモデリング方式であるVirtual Data Model(VDM)におけるビュータイプを決めるアノテーション「@VDM.viewType」との関連で混乱される場合がありますが、「データ抽出可能なCDSビューか」はあくまでアノテーション「@Analytics.dataExtraction.enabled」で決定されます。

以下はSAP Data Warehouse Cloudのデータビルダで、接続先のS/4HANAシステムから利用するCDSビューを選択する画面です。ここで利用可能なCDSビューはすべてアノテーション「@Analytics.dataExtraction.enabled」が”true”に設定されています。

※SAP Data Warehouse CloudとS/4HANAとの接続設定等についてはこちらをご確認ください。

例1:アノテーションが設定されている場合(勘定コードマスタ)

例2:アノテーションが設定されていない場合(品目マスタ)

2.データ抽出可能なCDSビューの探し方

まずはS/4HANAのビューブラウザを利用する方法です。こちらは先ほどご紹介したブログの「データ連携可能なCDSビューについて」の章に記載されておりますので、ご確認ください。

S/4HANA 2020からは「データ抽出可能なCDSビュー」を検索可能なCDSビュー(                                         I_DATAEXTRACTIONENABLEDVIEW(SQLビュー:IXTRCTNENBLDVW))が利用可能になりました。このCDSビューを利用するとデータ抽出可能なCDSビューを検索できるだけでなく、そのCDSビューがリリース済みか、またリアルタイムレプリケーションに対応しているか、まで判別することができます。

トランザクションコード:SE16Nで「IXTRCTNENBLDVW」を検索すると以下のように利用可能な項目定義を確認いただけます。

データ照会を行うと「データ抽出可能なCDSビュー」の一覧を確認いただくことが可能です。

※「ISSAPRELEASEDVIEW」にXを指定⇒リリース済のデータ抽出可能なCDSビューの一覧                                                               ※「DELTACHGDATACAPTUREISSUPPORTED」にXを指定⇒リアルタイムレプリケーションに対応しているデータ抽出可能なCDSビューの一覧

3.リアルタイムレプリケーションの仕組みとは?

リアルタイムレプリケーションのベースとなっているのはCDC(Change Data Capture)です。この機能によりS/4HANA配下のHANAデータベーステーブルに対する更新情報がロギングされ、さらにこの更新情報を相手先に超短周期で連携することにより、リアルタイムレプリケーションの仕組みが実現されています。

以下はSAPのDWH系製品とS/4HANAの連携概念図です。今回は赤枠のSAP HANA SDIからの連携をベースに説明します。

①まず、SDIからAPI経由でODP(Operational Data Provisioning)にリアルタイムレプリケーションの設定及び初回データ要求が行われます。

②この要求に基づき、CDSビュー配下のテーブルの更新情報がロギングが開始されます。                               (この情報はトランザクションコード:DHCDCMONで確認できます)

③ODPはCDSビュー及び要求元別に差分情報(ODQ)の管理を開始します

④CDSビュー配下のテーブルにINSERT, UPDATE, DELETEがあった場合、CDCに差分情報が管理されています。                                                                                                                                                (差分情報はテーブルのキー項目ごとにどんな変更があったかをベースに管理されていますので、CDSビューには配下のテーブルのキー項目がビュー項目として設定されている必要があります)

⑤SDIは周期的にODQにデータを要求します。QDQはCDCから前回連携分からの差分更新情報を抽出し、SDIにデータを連携します。

4.リアルタイムレプリケーション可能なCDSビューとは?

リアルタイムレプリケーションが可能なCDSビューとなるためには前述のアノテーション「@Analytics.dataExtraction.enabled」に加えて、「@Analytics.dataExtraction.delta.changeDataCapture」が記載されていることが必要になります。

以下は原価センタマスタ(I_CostCenter)の例になりますが、「changeDataCapture.automatic:true」と記載されています。

原価センタマスタの場合、CDSビューの配下のテーブルが「CSKS」という単一テーブルです。この場合は、「changeDataCapture.automatic:true」の記載のみでリアルタイムレプリケーションが可能なCDSビューとすることができます。また、CSKSのキー項目がビュー項目として設定されていることがわかります。

これに対し配下に複数のテーブルを持つCDSビューの場合は少し複雑になります。複数テーブルが配下にある場合に唯一リアルタイムレプリケーションが可能なのは、N:1のLeftouter joinを作成できるケースです。(UNIONやInner Join はリアルタイムレプリケーションがサポートされません)

これはCDCがテーブルのキー項目を元に差分認識をしていることによります。例えばN:NのLeftouter joinの場合は右テーブルとの結合により、左テーブル単体の場合と比較して取得されるデータ件数が変動します。そうすると正しい差分変更情報を連携できないため、左テーブルのデータ更新を基にビュー全体の差分情報生成が可能なN:1のLeftouter joinのみがサポート対象となっています。詳細はこちらを参照ください。

5.リアルタイムレプリケーション実践

これまでご説明したリアルタイムレプリケーションの仕組みを実際の画面を見ながら、復習したいと思います。(今回はSAP Data Warehouse Cloudを例にします)

(1)リモートビューの作成

SAP Data Warehouse Cloudのデータビルダで接続先のS/4HANAのCDSビュー(今回は原価センタマスタ:I_CostCenter(SQLビュー:IFICOSTCENTER))を使って、リモートビューを作成します。

データアクセスは「リモート」となっています。この状態ではData Warehouse Cloud側にデータは保持せず、都度S/4HANAのCDSビューにデータリクエストを行う形になります。

(2)テーブル複製-リアルタイムアクセスを有効化

SAP Data Warehouse Cloudにリアルタイムレプリケーションを行うため、テーブル複製⇒リアルタイムアクセス有効化を実行します。

リアルタイムレプリケーションが開始されました。

(3)S/4HANA側の確認

 ①ODQMON

データ要求側となる「SAP Data Warehouse Cloud」では問題なくリアルタイムレプリケーションが開始できたようなので、データ提供側である「S/4HANA」での動作をトランザクションコード:ODQMONを使って確認します。

予約者(=データ要求側):HANA_SDIに向けて原価センタマスタ(IFICOSTCENTER)のデータ連携処理が実行されるようになったことがわかります。                                                                                                        ※SAP Data Warehouse CloudはS/4HANAとの連携時、内部的にHANA SDIの機能を使っています。そのため、予約者がHANA_SDIとなっています。                                         ※複合依頼列を確認するとレプリケーション開始後に約15秒周期でHANA_SDI(=今回の場合は、SAP Data Warehouse Cloud)からデータ要求が行われてることがわかります。(環境の都合上、SAP Data Warehouse Cloudの時刻とシステム時間が9時間ずれた表示になっています。。)

 ②DHCDCMON

リアルタイムレプリケーションが始まったということは、S/4HANAテーブルに対するロギングが開始されているはずです。トランザクションコード:DHCDCMONで確認します。

原価センタマスタCDSビュー(I_CostCenter)がソースとしているテーブル:CSKSのロギングが開始されていることがわかります。

最後に

S/4HANAのリリースごとに(リアルタイムレプリケーションを含めて)データ抽出可能なCDSビューの数も増えています。本ブログが、CDSビューを使ったS/4HANAとSAP DWH系製品間のデータ連携の動きの理解に