SAP S/4 HANA Cloud のデータをBigQueryへ同期

by 桑島義行 | 2020年03月09日

はじめに

CData Japan技術ディレクターの桑島です。本記事では、SAP S/4 HANA CloudのデータをCData Syncを使ってBigqueryに同期する手順をご紹介します。

f:id:kuwazzy:20200305173408p:plain

SAP S/4 HANA Cloud とは

SAP S/4 HANA Cloudは、インメモリー型データベースエンジンSAP HANAを使用したERPアプリケーションのSaaSです。

www.sap.com

SAP S4/HANA Cloudには、SOAPとODataプロトコルで実装されているAPIがあり、外部システムやアプリケーションとデータ連携を行うことが可能です。APIドキュメントは以下のページから参照することができます。

f:id:kuwazzy:20200304151918p:plain

api.sap.com

Google Bigqeury とは

Google Bigqeuryは、Google Cloud Platform(GCP)内のデータベースサービスで、ユーザーがビッグデータから十分な情報を得てビジネス上の意思決定を行えるように設計された、サーバーレスでスケーラビリティと費用対効果が高いデータ ウェアハウスです。

cloud.google.com

CData Syncとは

CData Syncは、クラウドサービスからDB/DWH へのデータ連携/パイプラインをノーロードで実現するデータ同期ツールです。

f:id:kuwazzy:20200305174429p:plain

www.cdata.com

CData Syncの詳細な説明はこちらの記事をご覧ください。

www.cdatablog.jp

前提

  • SAP S/4 HANA Cloud のアカウント(Free Trial あり)
  • Google Bigqueryのアカウント(無料利用枠あり)
  • CData Sync (30日間の評価版あり)
  • CData Syncを配置するマシン (Windows用.NET版、クロスプラットフォーム用Java版あり)

手順

SAP S/4 HANA Cloud のAPIアクセス

SAP S/4 HANA CloudからAPI経由でデータを取得するにはAPIKeyが必要となります。APIKeyの取得についてはこちらの記事をご参照ください。

www.cdatablog.jp

Google BigQueryのデータセット作成

Google BigQueryの管理コンソールからProjectとその中にDatasetを作成します。本手順では以下の名称を付与しました。

  • Project : cdattajp
  • Dataset : SapS4HanaCloud

f:id:kuwazzy:20200306070145p:plain

CData Syncのインストールおよび初期設定

CData Syncのインストール、および、初期設定は、こちらのハンズオンセミナーの資料の「CData Sync製品のインストール, ライセンスのアクティベーション」の章をご覧ください。

https://www.cdata.com/jp/blog/2019-12-02-160226

データソースへの接続設定

CData Syncの管理コンソールにログインします。接続タブを開き、接続の追加内のデータソース タブ内の「+Add More」ボタンをクリックします。

f:id:kuwazzy:20200307094831p:plain

SAP S/4 HANA Cloud への接続には、SAP Gateway コネクタを利用します。検索窓から「sap」などキーワードで検索します。

f:id:kuwazzy:20200307094917p:plain

SAP Gateway コネクタをダウンロード&インストールします。インストール後はSyncアプリケーションの再起動が自動で走ります。

f:id:kuwazzy:20200307095033p:plain

再度、CData Syncの管理コンソールにログインます。接続タブを開き、接続の追加内のSAP Gatewayが追加されていることを確認して開きます。

f:id:kuwazzy:20200307095348p:plain

接続設定 > 設定タブの以下の項目をセットします。

  • 名前 : 本手順では SAPGateway
  • URL:SAP S/4 HANA CloudのAPIのエンドポイント

※ 本例ではURLに「Sales Order (A2X) | API」のエンドポイントとして以下の文字列を指定 https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_SALES_ORDER_SRV

f:id:kuwazzy:20200307095532p:plain

続いてAdvancedタブに移り、以下の項目をセットします。

  • Authentication > Api Key : SAP S/4 HANA CloudのAPIにアクセスするためのAPI Key

f:id:kuwazzy:20200307095620p:plain

セットしたら設定タブに戻り、「接続のテスト」を実行してください。「接続に成功しました。」のメッセージが表示されれば、CData SyncからSAP S/4 HANA Cloud への接続は成功です。接続情報を保存します。

f:id:kuwazzy:20200307100034p:plain

続いてGoogle BigQueryへの接続設定を行います。接続の追加内の同期先タブ内にGoogle BigQueryが存在することを確認してクリックします。

f:id:kuwazzy:20200307102340p:plain

接続設定 > 設定タブの以下の項目をセットして「接続」をクリックします。

  • 名前 : 本手順では Bigquery
  • Dataset Id:本手順では SapS4HanaCloud
  • Project Id : 本手順では cdattajp

OAuthの認可プロセスが走り、BigQueryへのログインします。

f:id:kuwazzy:20200307102259p:plain

f:id:kuwazzy:20200307103538p:plain

認可プロセスが完了すると以下のように「Success!」が表示されればBigQueryへの接続は成功です。

f:id:kuwazzy:20200307103659p:plain

接続タブの接続済みの接続に、SAP Gateway、および、GoogleBigQueryへの接続情報が作成されれば完了です。

f:id:kuwazzy:20200307103914p:plain

同期ジョブの作成

それでは、SAP S/4 HANA Cloud からGoogleBigQueryにデータを流し込むジョブを作成します。ジョブタブを開き「+ジョブを追加」ボタンをクリックします。新しいジョブ作成のダイアログが表示されるので、以下の項目をセットして「+作成」します。

  • ジョブ名 : 本手順では SAPS4HANACloud2Bigquery
  • ソース : SAPGateway [SAPGateway]を選択
  • 同期先 : Bigquery [GoogleBigQuery]を選択

f:id:kuwazzy:20200307104209p:plain

ジョブ設定画面が表示されます。ジョブ設定内の「+テーブルを追加」ボタンをクリックします。

f:id:kuwazzy:20200307104722p:plain

テーブルを追加ダイアログが表示され、SAP S/4 HANA Cloud のAPIエンドポイントがテーブルリストとして表示されます。 本手順では、「A_SalesOrder」を選択して追加します。

f:id:kuwazzy:20200307104829p:plain

「A_SalesOrder」が追加されたことを確認、変更を保存して、ジョブを手動で実行してみます。

f:id:kuwazzy:20200307105055p:plain

ジョブのステータスが「Running....」に変わります。

f:id:kuwazzy:20200307105234p:plain

ジョブが正常に終了するとステータスに同期された件数「Records affected *****」が表示されます。

f:id:kuwazzy:20200307105345p:plain

それでは、データが同期されたかをBigQuery側を確認してみます。指定したデータセット(SapS4HanaCloud)内に「A_SalesOrder」というテーブルが追加されていることを確認します。こちらのテーブルにselect文のQueryを発行して SAP S/4 HANA CloudのSales Orderのデータが取り込まれていることを確認します。

f:id:kuwazzy:20200307105731p:plain

ジョブを定期的に実行する場合は、ジョブ設定内のスケジュールタブを開き、「スケジューラを有効にする」をオンにして、Run Job:で実行サイクルを設定します。例えば月次サイクルで月末日に実行する場合は、Run Job: をMonthlyに設定して、曜日/日付:をLastに設定します。

f:id:kuwazzy:20200307110320p:plain

本設定でSalesOrderの月末スナップショットをBigqueryに蓄積することが可能です。

まとめ

いかがでしたでしょうか。今回は、CData Syncを使ってSAP S/4 HANA CloudのデータをGogoleBigQueryに同期する手順をご紹介しましたが、CData Syncを利用することで、SAP S/4 HANA Cloud以外のデータソース をBigQuery に同期したり、BigQuery以外のRDBなどのデータベースへの同期も可能です。CData Sync製品は30日の評価版もございますので是非お試しください。

www.cdata.com

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。