CData Sync でSAP ERP のCDC(変更データキャプチャ)をサポート

by 杉本和也 | July 31, 2025

sync-saperp-cdc.png

こんにちは。CData Software Japan マーケティング&パートナーサクセス マネージャーの杉本です。

今回は最新バージョンのCData Sync V25.2 で新しくサポートされたSAP ERP のCDC(変更データキャプチャ)の機能・使い方を紹介したいと思います!

CDC(変更データキャプチャ) とは?

CData Sync のようなデータパイプラインツールを利用してDWH にデータを取り込む際にポイントになる部分が、変更データの連携方法です。

もちろん、毎回データを洗替を行うようなアプローチも可能ですが、データソースのデータ量が肥大化している場合、連携に時間がかかってしまうため、更新されたデータのみを識別してDWH に取り込むアプローチが望ましいです。

更新データの識別方法は大きく分けて2つあります。一つは「日付や連番などに基づいて最新データを識別する方法」と「変更履歴のログデータに基づいて最新データを識別する方法」です。(イベント通知型というアプローチもありますが、ここではデータソースへ更新データを見に行く観点で進めます)

日付を用いた差分取得はアプローチとしては実装しやすいものの、データソースの種類によっては更新日を持たないデータもあり、難しいデータソースがありました。汎用的なSQL Server やOracle といったRDB などがそうですね。

しかしながら、今回のアップデートでSAP ERP の変更履歴テーブルを元に更新されたデータを識別して、連携する方法がサポートされました!

ちなみにCDC 全般に関する詳しい解説は以下の記事を参考にしてみてください。

https://jp.cdata.com/blog/db-cdc-sync

サポートするSAP ERP エディション

ちなみにSAP ERP は様々なエディションがあり、自社の環境に繋げるのかどうかわかりにくい部分があると思います。

CData SyncのSAP ERP コネクタは「BAPI およびRFC」で接続する仕様となっており、主に以下のエディションをサポートしています。

https://cdn.cdata.com/help/RYK/jp/synch/default.htm#pg_editionsandcontent

・SAP BW

・SAP ECC

・SAP ERP

・SAP R/3

・SAP S/4HANAオンプレミス Private Cloud

ちなみにイベントで「RISE With SAP は接続できますか?」という質問をよく頂くんですが、以下のドキュメントにあるようにRISE With SAP ではRFC/BAPI による接続がサポートされています。

https://learn.microsoft.com/ja-jp/azure/sap/workloads/rise-integration-network#network-communication-ports-with-sap-rise

sync-saperp-cdc-01.png

>SAP RISE の SAP システムには、SAP によって構成され、ユーザーが使用できるように開かれたオープン ネットワーク ポートを介してアクセスできます。 https、RFC、JDBC/ODBC プロトコルは、プライベート ネットワーク アドレス範囲を通じて使用できます。

前提条件

SAP ERP コネクタを利用する際には、RFC 接続のためSAP から提供されている「JCo」のライブラリ「sapjco3.dll」「sapjco3.jar」を利用するので「C:\ProgramData\CData\sync\libs\ext(Windows 環境の場合)」のフォルダにあらかじめ入れておきましょう。

sync-saperp-cdc-02.png

また、あらかじめ対象とするデータの変更履歴(CDHDR)も有効化しておきましょう。

今回はBank Master(BNKAテーブル)を対象にしますが、以下のように変更履歴が確認できる状態にあります。

sync-saperp-cdc-03.png

SAP ERP のコネクションの作成

それでは実際に試していきましょう。

まず必要に応じて、CData Sync およびSAP ERP コネクタをアップデートします。

sync-saperp-cdc-04.png

そこから接続を構成します。

sync-saperp-cdc-05.png

ちなみにCDC 機能を利用する場合は「高度な設定」の「Table Mode」を「ChangeDataCapture」に設定する必要があります。

sync-saperp-cdc-06.png

また、今回はSAP ERP のデータをMySQL に連携させるので、MySQL のコネクションもあらかじめ作成しておきます。

sync-saperp-cdc-07.png

CDC ジョブの作成

SAP ERP のコネクションを作成したらCDC 用のジョブを作成します。

ジョブ作成画面でデータソースに先ほど作成した「SAP ERP」のコネクションを指定します。

すると、ジョブの種類に「変更データキャプチャ」が表示されるので、これを選択しましょう。

sync-saperp-cdc-008.png

続いてタスクの一覧から連携対象のSAP テーブルである「BNKA」を選択します。

sync-saperp-cdc-09.png

sync-saperp-cdc-10.png

レプリケーションされるデータはプレビュー画面で確認できます。

sync-saperp-cdc-11.png

この状態でジョブを実行することで、BNKA テーブルがMySQL 上に作成されデータがレプリケーションされます。

sync-saperp-cdc-12.png

CDC 機能の動作を確認する

一旦シンプルなレプリケーションができたので、いよいよCDC 機能の動作も確認していきます。

まず、ショートカットキー「FI01」でBank Mater を作成してみましょう。

以下のような「SAMPLEBANK」というデータを作成してみました。

sync-saperp-cdc-13.png

この状態で再度ジョブを実行すると、レプリケーション結果が1件のみ成功した表示になります。

sync-saperp-cdc-14.png

実際にMySQL を確認してみると、新しくレコードが追加されていました!

sync-saperp-cdc-15.png

続いて「FI02」のChange Bank でデータを変更します

対象のBank Country・Bank Keyで先程の値を入力して、「Enter」をクリック

sync-saperp-cdc-16.png

Bank name を「SAMPLEBANK_UPDATE」という名前に変更します。

sync-saperp-cdc-17.png

実際に変更履歴が残っているかどうかも確認しておきましょう。「Change Documents」をクリックします。

sync-saperp-cdc-18.png

すると以下のように「SAMPLEBANK」→「SAMPLEBANK_UPDATE」に変更した履歴が残っていました。

sync-saperp-cdc-19.png

改めて再度ジョブを実行してみます。今回も1件のみ反映されました。

sync-saperp-cdc-14.png

MySQL 上でデータを確認してみると、正常に先程のレコードのデータが更新されていることがわかります!

sync-saperp-cdc-21.png

おわりに

このようにCData Sync を利用することでとても手軽にSAP ERP のデータを変更履歴に基づきながら連携することが可能です。

もし試していてよくわからない点や相談したいことがあれば、以下のサポートフォームまでお気軽にお問い合わせください。

https://jp.cdata.com/support/