はじめに
本ブログでは、SAP Data Warehouse Cloud (DWC) とSAP Analytics Cloud (SAC) の双方向のデータ連携の方法を記載します。
DWCのデータをSACで分析するには、SACから直接DWCへライブ接続でデータ活用行うことができ、ここではモデルのセマンティクスなども連携されるため分析シナリオでは最適な組み合わせとなります。
一方、SACの計画機能を利用する際はSACにデータをインポートする必要があり、2022年9月時点ではDWCのAPI(※)を利用してDWCからSACにデータ連携することが可能です。(ヘルプ、下図の青線)
※本APIは2022年9月時点では制限付きリリースとなっており、いくつかの制約がある点ご留意ください。詳細はSAPノート3199078をご参照ください。今後のリリース予定はロードマップをご参照ください。
正式リリースとなり、制約が取り払われました!(2022年9月下旬)
更に、SACの計画機能で更新されたデータをDWCに連携する際は、こちらも2022年6月時点ではSACの公開APIを利用してSACからDWCにデータを連携することが可能です。(ヘルプ、下図の赤線)
本ブログのPart1ではDWCからSACへのデータ連携(青線)を説明し、Part2ではSACからDWCへのデータ連携(赤線)を説明します。
図1. SACとDWCのデータExport&Import連携
本ブログを作成した2022年6月時点では上記のような方法での連携となりますが、今後段階的にSACとDWCの統合が進み、2022年Q4時点ではデータモデルおよびカタログの統合が予定され、更に2023年にはSACとDWCのデータ基盤が完全に統合される予定です。
図2. SACとDWCの機能統合ロードマップ
本ブログのシナリオ
本ブログでは、「触ってみよう!SAP Analytics Cloud for Planning」で使用しているモデル、データを利用してご説明します。
大まかな流れは以下の通りです。
図3. 本ブログのシナリオ概要
- S/4HANAなどから実績データをDWCに連携する。(本ブログの対象外)
- DWCの実績データをSACの計画モデルに連携する。(本ブログPart1でデータ連携方法説明)
- 計画データを入力、公開する(本ブログの対象外、触ってみよう!ブログでご紹介)
- SACの計画モデルを参照する計画テーブル(仮想)をDWCに作成し、これをもとに予実対比のビューを作成し、予実分析を行う(本ブログPart2でデータ連携方法説明)
では、早速本題に入っていきましょう。
DWCのデータをSACのモデルに連携する方法
手順概要
DWCからSACへのデータ連携は、以下のような手順で進みます。
-
DWCでOAuthクライアントを登録
-
SACでODataサービス接続を作成
-
SACでデータをインポート
1. DWCでOAuthクライアントを登録
まず、DWCでSACへのデータ抽出用のOAuthクライアントの登録を行います。
SAC側作業
まず、SACの「リダイレクトURI」を取得するために、SACで新しいOdataサービス接続を作成します。SACで「接続」に遷移し「+」ボタンを押下します。
図4. [SAC] 新しい接続の作成
データソースの選択で「ODataサービス」を選択します。
図5. [SAC] ODataサービス接続の作成
接続名と説明を記入し、「認証タイプ」で「OAuth2.0認証コード」を選択します。
図6. [SAC] 認証タイプの選択
さらに下にスクロールし、「リダイレクトURI」をコピーします。
図7. [SAC] リダイレクトURIの取得
この画面は残したまま、DWCに移ります。
DWC側作業
DWCの「システム」→「管理」より「アプリ統合」タブに遷移し、「新規OAuthクライアントを追加」を押下します。
図8. [DWC] 新規OAuthクライアントの追加
任意の名称を入力し、以下のように入力・選択し、新規OAuthクライアントを追加します。
- 名称:任意
- 目的:「インタラクティブ用途及びAPIアクセス」
- アクセス:「データエクスポートサービス」
- リダイレクトURI:図7で取得した「リダイレクトURI」をペースト
図9. [DWC] OAuthクライアントの追加
以上で、DWC側でのOAuthクライアント作成は完了です。
2. SACでODataサービス接続を作成
次に、SACでODataサービス接続を作成します。SAC側で作成しますが、DWC側の以下の情報が必要になります。
DWC側作業
前のステップで作成したOAuthクライアントの以下の情報。変種画面より取得。
- OAuthクライアントID
- シークレット
図10. [DWC] 作成したOAuthクライアントの情報
テナントのOAuthサービスの情報。
- 権限URL
- トークンURL
図11. [DWC] テナントのOAuthサービスの情報
SAC側作業
SACでODataサービス接続を作成します。SACに戻ると、図7の状態になっているかと思います。(そうでない方は図7まで同じ手順を実施してください)
ここで、各情報を入力し、作成ボタンを押下します。
- 接続名、説明:任意
- データサービスURL:以下のフォーマット(本ブログではDWCの実績ビューを指定します)
-
# Private API https://<your-dwc-tenant-url>.cloud.sap/dwaas-core/odata/v4/consumption/relational/<space-id>/<asset-id>/ # Public API https://<your-dwc-tenant-url>.cloud.sap/api/v1/dwc/consumption/relational/<space-id>/<asset-id>/
-
- 認証タイプ:「OAuth 2.0 認証コード」
- OAuthクライアントID:DWCより取得(図10)
- シークレット:DWCより取得(図10)
- トークンURL:DWCより取得(図11)
- 権限URL:DWCより取得(図11)
図12. [SAC] ODataサービス接続の作成
以上で、SAC側でDWCの実績ビューに対するODataサービス接続が作成されました。
3. SACでデータをインポート
最後に、この接続を使用してDWCからSACへデータをインポートします。
まず、SACでデータを連携するモデルの「データ管理」を開き、「ドラフトソース」→「データのインポート」→「データソース」を選択します。
図13. [SAC] モデルのデータ管理
データソースとして「ODataサービス」を選択します。
図14. [SAC] データソースの選択
図12で保存したODataサービス接続を選択します。
図15. [SAC] ODataサービス接続の選択
データ連携のためのクエリを作成します。まずクエリ名、対象となるDWCのビューを選択します。
図16. [SAC] クエリ名の入力
次に、SACに連携するデータ項目、フィルタ条件を設定します。「作成」を押下するとデータ連携が開始され、ドラフトデータとしてSACに保存されます。
図17. [SAC] クエリの作成、データの連携
DWCのデータがドラフトデータとしてSACにインポートされました。このドラフトデータを選択し、SACのモデルにデータをインポートします。
図18. [SAC] ドラフトデータの選択
要件に応じマッピングの設定、インポート方法の設定などを行い、「マッピングの終了」を押下するとモデルへのデータインポートが開始されます。
図19. [SAC] インポート設定
データのインポートが終わりました。
図20. [SAC] データインポート結果
実際にデータがインポートされていることを確認します。まずはデータインポート前のレポート画面です。
図21. [SAC] データインポート前のレポート
データインポート後にレポートを開くと、データが表示されることが確認できます。つまり、DWCからSACのモデルへのデータインポートが正常に行われたことが確認できました。
図22. [SAC] データインポート後のレポート
さいごに
以上、DWCのデータをSACにインポートする方法をご紹介しました。
最初にも触れた通り、DWCにあるデータをSACの計画機能で利用する際、現時点ではこの方法でデータの連携を行うことが可能です。
一方、2023年に予定されているSACとDWCの連携強化により、SACの計画機能を直接DWCのデータに対して行うことができる予定になっています。