DatabricksのカタログにSAP S/4 HANA Cloudのデータをレプリケーション
本記事はCDataが提供する「CData Software Blog」に掲載された「Databricks のUnity Catalog に SAP S/4HANA Cloud データをノーコードでレプリケーション」を再編集したものです。
Databricksは、データとAIの融合と活用を支援するデータインテリジェンスプラットフォームです。
今回は CDataが提供するデータパイプラインツール「CData Sync」を使い、SAP S/4HANA Cloud (SAP Netweaver Gateway) のデータを Microsoft Azure上に用意したDatabricks環境「Azure Databricks」にノーコードでレプリケーションしてみたいと思います。
Azure DatabricksはDatabricksをMicrosoft Azure環境向けに最適化し、Data Lake Storage、Azure Synapse Analytics、Power BI等と密接に統合したクラウドサービスで、Azureサービスと連携した拡張性の高さが特徴です。
CData Syncについて
CData Syncは、DatabricksをはじめとするSaaSやRDBのデータを各種DB・DWHにノーコードで手軽にレプリケーション、データ転送できるデータパイプラインツールです。
一般的に外部のSaaS やDB などのデータソースをDatabricksと連携する場合はETL パイプラインを構築・運用することになりますが、CData Syncを使うことでChange data capture (CDC) による差分同期を含むデータ連携がノーコードでシンプルに実現でき、すぐにDatabricksの利用が開始できます。
CData SyncはDatabricksを活用する上で中核の機能となる「Unity Catalog」に対応しているため、データに対するアクセス制御などデータガバナンスへの対応やリネージデータによる変更履歴の把握、生成AI によるメタ情報の自動生成の利用が標準で可能です。
レプリケーションまでの流れ
CData Syncを使ったレプリケーションの手順は以下です。
1. CData SyncにSAP Netweaver Gatewayへの接続情報を登録
2. CData SyncにDatabricksへの接続情報を登録
3. CData Syncに「ジョブ」と呼ばれるデータソースと同期先の情報を登録
4. 登録した「ジョブ」に 実際のレプリケーション処理を行う「タスク」を追加
5. タスクを実行してレプリケーションを実施
なお、Azure Databricks上でワークスペース、カタログ、スキーマ と、Unity CatalogにデータにアクセスするためのSQLウェアハウス クラスターは事前に作成されている前提になります。
まだDatabricks環境がない場合は公式のチュートリアルの手順に従って準備を行なっていただくことをお勧めいたします。
1. CData SyncにSAP Netweaver Gatewayへの接続情報を登録
まずはSAP S/4HANA CloudのデータにアクセスするためのハブとなるSAP Netweaver Gatewayへの接続設定を行います。
CData Syncの「接続」メニューにて「接続を追加」をクリックし、「SAP Gateway」を検索します。
必要な情報を登録後、「保存およびテスト」をクリックして接続が成功することを確認します。
これでSAP S/4HANA Cloudのデータを標準化されたOData形式で取得可能になりました。
2. CData SyncにDatabricksへの接続情報を登録
CData Syncとの接続を確認するために、Azure Databricks側で事前に作成したSQLウェアハウスのクラスターを起動します。
また、Azure Databricks側で接続したいカタログ名やテーブル名を確認しておきましょう。
1の手順と同様にCData Syncの接続メニューにて「Databricks」を検索して必要な情報を登録します。
CData SyncでUnity Catalogにアクセスするために、「高度な設定」タブ内にある「Schema」の項目にて「Catalog」の値を初期値の「hive_metastore」から今回用に作成したカタログ名に変更します。
また、「設定」タブ内にある「Database」の値についても、今回用に作成したカタログ配下のテーブル名を設定します。
接続情報の登録ができたら「保存およびテスト」をクリックして接続が成功することを確認します。
なお、Unity Catalogへの接続用に設定した「高度な設定」タブ内にある「Schema」の項目や「設定」タブ内にある「Database」の値を初期値のままにしてレプリケーションを実施した場合はレガシーHive metastoreとなる「hive_metasore」カタログ内の「default」スキーマ配下にテーブルが作成されてデータが同期されます。
Unity Catalogと レガシーHive metastoreの違いの詳細については公式のドキュメントをご参照ください。
3. CData Sync に「ジョブ」を登録
「ジョブ」にはソースへの接続情報と同期先への接続情報を登録します。
4. 登録した「ジョブ」に 実際のレプリケーション処理を行う「タスク」を追加
3で登録した「ジョブ」にある「タスク」タブを開いて「タスクを追加」をクリックし、データソースとなるテーブル名を選択します。
データの同期先となるDatabricks側のテーブルはCData Sync側が自動的に作成するため設定は不要です。
なおCData Syncのジョブには複数のタスクの登録が可能ですので、必要に応じて設定を追加します。
5. タスクを実行してレプリケーションを実施
ソースデータへの接続、同期先への接続、およびデータフローとなるジョブとタスクが作成されましたので、実際にタスクを実行してレプリケーションを行なってみます。
タスクの実行前に、Azure Databricks側の SQL Warehouseクラスターが停止している場合は起動します。
タスクの処理が完了したのでAzure Databricks 側にレプリケーションが行われているかを確認しましょう。
Unity Catalogにソースデータの「purchaseorderitems」テーブルが作成され、「Sample Data」タブでデータが同期されていることが確認できました。
続いてAzure Databricks上でどのようなことが出来るようになったか確認してみましょう。
生成AI によるデータのドキュメンテーション
追加されたテーブルの「Over view」タブでは、生成AIによるデータのドキュメンテーションが確認できます。
こちらは現時点ではパブリックプレビューで公開中ですが、生成された説明文を必要に応じて修正して「Accept」をクリックすると情報がUnity Catalogに保存されます。
テーブルやカラムに関する適切なメタデータの付与により、データの信頼性・検索性が向上します。
データリネージ
「Lineage」タブを表示すると、データがどのような処理をされたかなどのデータリネージが参照できます。
データリネージはデータサイエンティストなどデータの利用者が適切な判断をするために最も重要視する情報の一つです。
分析情報
「Insights」タブでは、過去30日間にテーブルで実行されたクエリとテーブルにアクセスしたユーザーの確認が可能です。
また、Unity Catalogによって管理されているシステムテーブルの情報を活用し、ユーザーのアクセス情報の確認ができました。
システムテーブルの活用により、データの利用分析、消費/コスト予測、侵害の兆候(IoC)等の高度な監査も可能です。
以上でCData Syncを使って既存のデータソースをAzure Databricksにレプリケーションし、高度な分析や生成AIの活用が可能になりました。
CData Syncは30日間の無料トライアルも可能です。ぜひお気軽にお試しください!