Technical Articles
SAP HANA SDIとAdvantco Salesforce Adapterを使ってSalesforceのデータを準リアルタイム方式でSAP HANAに連携する
前置:最近、SAP ERPやSalesforce等業務システムのデータをリアルタイムに連携して鮮度が高いうちに分析したいというお話がよく耳に入ってきます。このブログは業務システムをSalesforce、分析DBをSAP HANA(以降略HANA)と想定してリアルタイムデータ連携に関して記載しています。このフレームワークを使用することで、Salesforce側のデータに変更があった場合にも、ほぼリアルタイムにHANAに反映させることで、最新の情報で分析することができます。
また、本ブログは許可を得たうえ下記のブログを翻訳したものとなります。原文をご覧になられたい方は下記よりリンクしてください。
Thanks so much to Peter Ha for his excellent blog post and permission to let us translate it to Japanese.
■概要
Salesforceは外部にデータを準リアルタイム連携するAPIを提供しています。このブログポストではChange Data Capture(以降略CDC)とプラットフォームイベントの二つの方法でリアルタイム連携機能をご紹介します。
プラットフォームイベントは複数のオブジェクトからデータを取得する場合に優れており、CDCは単一のオブジェクトのデータを取得するのに便利なやり方です。
このブログポストではSAP HANA Smart Data Integration(以降略SDI)というツールを使ってSalesforceのデータをHANAに連携する
SDIを機能するために、下記のように環境を整える必要があります。
・HANAのネイティブプロセスData Provisioning Serverを有効化する。
・HANAとは異なるサーバにData Provisioning Agent(以降略DPA)をインストールする。
・DPAのホストにAdvantco Salesforce Adapterをデプロイする。
・HANA側で連携先であるSalesforceをリモートソースとして設定する。
では、詳細について今から説明していきます。
■1.Salesforce側の事前準備
1-1.CDC機能の有効化(ここではAccountオブジェクトを例とする)
SalesforceでSetup->Change Data CaptureでAccountオブジェクトを選択します。
1-2.オブジェクトのプラットフォームイベントの設定(ここではOpportunityオブジェクトを例とする)
Salesforce側でプラットフォームイベントオブジェクトを定義し、Opportunityに更新が発生すると、このプラットフォームイベントオブジェクトには更新データが格納されターゲットのHANAに送信されます。
このプラットフォームイベントオブジェクトどのオブジェクトのデータも格納できます。↓のスクリーンショットはAccountとOpportunityが格納されています。
1-3.APEXトリガーの設定
プラットフォームイベントオブジェクトが定義された後、Apexトリガーをコーディングします。
これでSalesforce側の設定終わりました。
次はSDIの部分です。
■2.DPAのインストールとAdvantco Adapterのデプロイ
詳細は下記のブログに記載があり、ここではスキップします。
SalesforceにあるカスタムオブジェクトをSAP HANA CloudへSDIで連携する方法
■3.Salesforceへの接続のリモートソースの作成
DPAのインストールとアダプターのデプロイが完了したら、HANA側でリモートソースを作成します。
Salesforceとの接続はリモートソースを介して実現しています。
リモートソースを作成するにはHANA StudioやWeb-based Development Workbenchが使えます。
ここでは後者を使います。
Salesforceのエンドポイント、ユーザ認証情報、そしてリアルタイム連携のためにStreamingオプションをオンにします。
リモートソースを正しく作成した場合、下のようにSalesforce側のプラットフォームイベントとイベントチャネル等のオブジェクトを参照することができます。
■4.レプリケーションタスクの作成(CDC方式)
レプリケーションタスクはSalesforce側のデータをHANAの実テーブルに書き込むためのオブジェクトです。
Salesforce側のCDCのデータ変更を検出しHANAに連携してくるために必要です。
このブログポストでは、標準のイベントチャネルを使ってSalesforceのAccountオブジェクトのデータ変更を検出してHANAに連携するタスクを作成しています。
変更イベントオブジェクトはStreaming CDC Sourceに分類されています。
レプリケーションタスクはAccountのデータを格納するためのHANAの実テーブルを自動的に作成してくれます。
レプリケーションタスクを保存し実行すると、HANA側からモニタリングができます。
レプリケーションタスクを保存するとHANA側で仮想テーブルと実テーブルは↓のように自動的に作成されます。
HANAの実テーブルの中にはAccountのイベントが格納されています。Salesforce側で更新があった項目には更新情報が入っています。
■5.レプリケーションタスクの作成(プラットフォームイベント方式)
先ほど作成したプラットフォームイベントオブジェクトをリモートオブジェクトから選択します。
HANAは自動的にプラットフォームイベントオブジェクトに基づいてテーブルを作成してくれます。
レプリケーションタスクを保存・有効化して、OpportunityのプラットフォームイベントのデータをHANAの実テーブルに連携を開始します。
プラットフォームイベントは準リアルタイム方式でHANAに連携されます。
■最後に
SDIとAdvantco Salesforce Adapterを使って、Salesforceからイベントを受信することでSalesforceからSAP HANAにデータをほぼリアルタイムで連携ができます。
CDCを使う場合、Salesforce側のオブジェクトレベルの更新は即座に連携されます。
プラットフォームイベントを使う場合、複数のオブジェクトからデータを連携することが可能です。
Salesforce Change Data Capture
Advanvto