SAP ERP(ECC・S/4 HANA等)のデータをGoogle BigQueryにレプリケートする方法:CData Sync

こんにちは。CData Software Japan リードエンジニアの杉本です。

最近SAP関連サービスのデータをGoogle のDWHサービスであるBigQueryにレプリケーションし、データ分析基盤のデータソースとして活用したいという相談を多く受けます。

このあたりのアプローチはSAPに慣れている方々であっても、SAPのインターフェースの特性とBigQuery側へのデータの転送アプローチ、両方の技術的知識が必要となって、なかなか手を出しにくいのではないでしょうか。

CData Software ではSAP ERPなどのデータをローコードでBigQueryにレプリケーションできる CData Sync というプロダクトを提供しています。

https://www.cdata.com/jp/sync/

今回はこのCData Sync を用いて SAP ERPのデータをBigQueryにレプリケーションする方法およびその時のポイントを解説します。

対象となるSAPのエディション

今回私の環境ではローカルに構築しているSAP ECC(SAP ERP Central Component)を対象としますが、CData Sync のSAP ERPコネクタは以下のような様々なエディションに対応できるようになっています。

https://cdn.cdata.com/help/RYG/jp/jdbc/pg_editionsandcontent.htm

・SAP BW
・SAP ECC
・SAP ERP
・SAP R/3
・SAP S/4 Hana オンプレミス

例えば、Google Cloud Platform 上で構成できるSAP S/4HANA にも接続して利用可能です。

https://cloud.google.com/solutions/sap/docs/architectures/sap-s4hana-on-gcp?hl=ja

なお、RFC接続ができない SAP S/4 HANA クラウドでは、ODataインターフェースを用いてアクセスする必要があるため、「SAP Netweaver Gateway」のコネクタを用います。

https://www.cdata.com/jp/drivers/sapgateway/

CData Syncのホスティング先について

CData Sync はサーバーインストール型の製品であるため、SAP ERPのデータに対してアクセスするにあたり、どこにインストールするか? を考えることは重要です。

例えば、自社サーバー・オンプレミス環境上にSAP S/4 HANAをインストールしている場合は、同じオンプレミス環境上でSAP S/4 HANAにアクセスできるサーバーにインストールするのが良いでしょう。

もし、GCP上でSAP S/4 HANA 環境を構成しているのであれば、同じようにGCP上で環境を構成するのがおすすめです。

CData Sync はWindows版(.NET)とCross-Platform版(Java)が存在するので、任意のサーバー環境にインストールすることが可能です。

https://cdn.cdata.com/help/ASG/jp/sync/Starting-The-Server.html

GCP上で環境構成する場合は、Compute Engine(GCE)を使って環境構成することもできます。以下の記事でも詳しく解説しているので参考にしてみてください。

https://www.cdata.com/jp/blog/entry/2020-08-04-092609

なお、今回の記事では私のデスクトップマシン(Windows 11)上にCData Syncをインストールして試しています。このように検証用途であればノートパソコンやデスクトップにインストールして試すのも良いでしょう。

事前準備

SAP ERPとのRFC通信のために、CData SyncではSAPから提供されているネイティブライブラリが必要となります。利用するプラットフォームに応じて実行時にアクセス可能な場所(system32、bin フォルダ、パスなど)にアセンブリを配置しておきましょう。

Windows版(.NET)

https://cdn.cdata.com/help/RYG/jp/ado/pg_dependencynote.htm

Cross-Platform版(Java)

https://cdn.cdata.com/help/RYG/jp/jdbc/pg_dependencynotejdbc.htm

例えばWindows版であれば、以下のようなDLL一覧のフォルダのパスを環境変数に追加しておきます。

今回のシナリオ

今回はシンプルなシナリオとして、BNKAテーブル、銀行マスタが登録されているテーブルのデータをレプリケーションしてみます。

https://www.tcodesearch.com/sap-tables/detail?id=BNKA

CData Sync のSAP ERPコネクタではこのような各種SAPテーブルを簡単にBigQueryに取り込むことができます。

また、すでにSAP ERP内部で集計用のSAP Query を使っているようであれば、以下のような設定でSAP Queryからもデータを取得することができます。

https://www.cdata.com/jp/blog/entry/saperpquery

CData Syncは前述の通り、ローカルのデスクトップマシンにインストールしています。30日間の無償トライアルがあるので、お気軽に皆さんの環境にインストールして試してみてください。

https://www.cdata.com/jp/sync/download/

接続設定

それでは実際にSAP ERPデータをレプリケーションしてみましょう。

CData Syncをインストールして立ち上げると、以下のようにブラウザでログイン画面が表示されるので、予め設定したユーザーIDとパスワードでログインします。

CData Syncにログインしたら、まずSAP ERPとBigQueryのコネクションを構成します。

「接続」→「データソース」から「SAP ERP」を選択します。

ちなみに SAP ERPコネクタのインストールがまだの場合は「+Add More」から「SAP ERP」コネクタをダウンロードします。

以下のようにSAP ERPに対する接続設定画面が表示されるので、以下のマニュアルに従って必要な項目を入力します。設定例はダミー値ですが、今回はVPNでアクセスできるSAP ECCサーバーに接続しています。

https://cdn.cdata.com/help/RYG/jp/synch/default.htm#pg_connectionsynch

続いて「接続」→「同期先」から「Google BigQuery」への接続を追加します。

レプリケーション先となる「Project Id」と「Dataset Id」を指定して「次に接続 Google BigQuery」をクリックします。

別タブで以下のようにGCP環境へのアクセス許可が求められるので、内容を確認して「続行」をクリックします。

これでSAP ERPとGoogle BigQueryへの接続設定は完了です。

ジョブの作成

接続設定が完了したら、レプリケーションする内容を定義した「ジョブ」を作成します。

「ジョブ」タブに移動して「ジョブを作成」をクリックします。

任意のジョブ名と、先程作成した接続情報をソースと同期先に対してそれぞれ指定します。

ジョブを作成したらBigQuery にレプリケーションするSAP ERPの対象テーブルを選択します。

テーブルを追加した後は、テーブル毎にマッピングやデータ取得の条件を調整することが可能です。

取得結果のイメージはプレビュー画面から確認してみましょう。

ジョブの実行

ジョブの設定が完了したら、試しにレプリケーションを実行してみましょう。

なお、CData Syncでは通常以下のようにジョブのスケジュールタブから実行間隔を指定します。

今回はテスト実行なので「Tables」タブから任意のテーブルを選んで「実行」をクリックします。実行後、ステータスに「Records affected: 41」といったようにレプリケーション件数が表示されれば処理完了です。

BigQuery側のクエリエクスプローラをリフレッシュしてみると、自動的にBNKAテーブルが生成されていますね。このように自動的に項目の型などを識別してテーブルを生成してくれるのもCData Syncのメリットの一つです。

プレビューを見てみると、SAPから取得した結果が格納されていることを確認できました。

TIPS

最後にTIPSの紹介です。

SAP ERPのデータをレプリケーションしていると、「You have selected to return 660 bytes worth of data per row. ~~~」というエラーに遭遇することがあると思います。

これは、内部で利用している「RFC_READ_TABLE」の汎用モジュールの制約によって発生しています。これを回避する方法について以下の記事で解説しているので参考にしてみてください。

https://www.cdata.com/jp/blog/entry/saperpcustomreadtable

おわりに

このようにCData Sync を用いることで各種SAPのデータを手軽にBigQueryに持っていくことが可能です。

もしわからない点があれば、日本語のテクニカルサポートも提供されているので、お気軽に問い合わせしてみてください。

https://www.cdata.com/jp/support/submit.aspx

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

関連コンテンツ