技术文章
接近实时的数据复制从Salesforce到SAP HANA使用的Advantco Salesforce适配器的SDI
介绍
Salesforce提供的api使外部应用程序能够以接近实时的方式接收事件。在本博客中,我们提供了其中两个选项的详细配置步骤:平台事件和更改数据捕获(CDC)。当需要来自多个对象的数据时,比如将来自Opportunity的数据与来自Account对象的详细信息组合在一起时,Platform Event是一个很好的选择。更改数据捕获(CDC)提供了一个快速且可配置的选项来发布特定对象(如Account或Contact)的数据。
我们在这里描述的解决方案基于SAP智能数据集成(SDI)工具,该工具提供了支持从外部资源到SAP HANA的数据复制的特性。此上下文中最重要的两个组件是数据供应服务器(Data Provisioning Server),它是一个本地SAP HANA进程,以及数据供应代理(Data Provisioning Agent),它是一个运行在HANA环境之外的容器。Advantco Salesforce适配器部署在Data Provisioning Agent主机上,可以在创建远程数据源时从HANA环境中进行配置。远程源是从SAP HANA到Salesforce实例的连接。
Salesforce方面的准备工作。
为Account对象启用Change Data Capture (CDC)。
启用更改数据捕获是一个非常简单和快速的过程。
在Salesforce,转到设置->变化数据捕获为Account对象激活CDC。
为Opportunity对象创建和配置平台事件。
在Salesforce中,定义一个Platform Event对象来保存机遇更新时将发送的数据。这个事件对象可以保存来自任何对象的数据,在本例中是来自Opportunity和Account的数据。
一旦平台事件对象被定义,我们就会编写一个APEX触发代码来从机会和帐户中检索数据。
Salesforce配置已经准备好。下一步是配置SAP SDI部分。
接近实时的数据复制与Salesforce平台事件或更改数据捕获(CDC)。
在数据供应代理主机上安装Advantco Salesforce适配器。
有关详细的安装和配置说明,请参阅这篇优秀的文章博客来自我们NTT数据的同事。
//www.hncdgy.com/2021/06/21/access-salesforce-custom-objects-from-hana-cloud-via-sdi/
创建远程源代码到Salesforce。
一旦Salesforce适配器被部署并注册到SAP HANA服务器,现在就可以使用它来创建Salesforce的远程源。
有多种方法可以创建远程数据源,我们使用基于web的开发工作台用户界面选项。
提供Salesforce端点、用户凭据,如果是接近实时复制,则选择流媒体选择。
一旦远程源被配置和测试,就会看到Salesforce对象、平台事件和事件通道。
创建复制任务,将Salesforce Change Data Capture事件复制到HANA表中。
为了将Change Data capture事件捕获到HANA真实表中,我们定义一个任务并选择在上面步骤中创建的远程数据源。在本例中,复制任务使用标准的Event通道从Salesforce Account对象复制事件。
系统会自动为Account Change Event对象创建HANA表结构。
一旦复制被保存并启动,就可以使用HANA中的标准监控工具监控任务。
在保存复制任务时自动创建虚拟表和实表。
通过实表查询,可以查看不同账户的事件。Salesforce中被修改的字段将有更新的信息。
创建复制任务,将Salesforce Platform Event事件复制到HANA表中。
为了将平台事件捕获到HANA真实表中,我们使用与CDC复制相同的流式远程源。我们从可用的Salesforce对象中选择Platform Event对象。
系统将基于在Salesforce中创建的Platform Event对象结构创建表结构。
保存并激活复制,开始将Platform事件从Opportunity对象接收到HANA实表中。
每个Platform事件几乎实时地复制到HANA实表中。
总结
使用Salesforce用于SAP SDI的适配器,可以实现从Salesforce到SAP HANA的近实时接收事件。更改数据捕获(CDC)提供了Salesforce对象级别的任何更改的即时更新。平台事件允许事件可以包含来自Salesforce端不同对象的数据。