Unlock SAP Data

  1. 云栖社区>
  2. 博客>
  3. 正文

Unlock SAP Data

晨曦美 2018-09-14 15:24:45 浏览1057
展开阅读全文

上次举办了主题为:“UnlockSAP Data”webinar后,很多小伙伴都很感兴趣(要是还没看赶紧去看录像啊~~),但是因为是英文的,不是很明白。这里跟大家再具体介绍一下。

SAPERP产品经过了多年的发展, 目前主要有2个版本, 老的ECC和新发布的S4HANA S4HANA是革命性的新产品, 但上市时间不久, 大部分的老用户应该还是使用的ECC

如何解锁“HANA的数据,我们下次再聊, 今天我们就主要聊聊ECC

ERP系统在绝大多数企业都是最为核心的系统, 这么重要的系统,其中存放的数据也是非常宝贵的, 为了挖掘这些数据的价值, 企业纷纷上线了各种报表,BI甚至大数据分析系统。但是这些系统通常不能也不会直接在ERP的数据库上运行。 

但是想要获取ECC系统的数据是件很复杂的事情。这是由于大部分的业务数据, SAP将它们封装起来,以二进制对象的方式存在表的LOB字段里,这些表叫cluster table或者pooled table。读取这些信息,需要使用专门的ABAP语言编程,然后再传输DW系统供用户分析使用。

关于这一点,我们可以用相对“静态”的物料主数据来举个例子。

首先,你需要业务顾问写好包含程序处理逻辑的功能说明书,定义清SAP在何种情况下触发程序,需要传输哪些字段数据,同时在程序里包含哪些逻辑条件,总之,说明书写的越详细,ABAP开发顾问就越容易理解开发需求,也就越能准确实现业务顾问想实现的功能。有了功能说明书之后,开发顾问就可以着手开发ABAP程序来传输数据了。一种比较简单的方法是可以在SAP中定义增强程序,当物料创建、修改时,只要在SAP系统中对物料主数据更新保存成功后,会自动调用增强程序将物料信息推送给目标系统,并根据目标系统的响应在SAP中记录推送结果。

听上去似乎也不是太复杂,ABAP老司机也许几个小时就完成了开发测试一条龙服务

但是,这仅仅是一个物料主数据同步的接口,如果有很多不同的主数据呢?如果业务顾问有那么一点点不靠谱,说明书写的云山雾罩呢?如果ABAP开发顾问并不是一个老司机呢?嗯,Will you make a wish, make a wish,闭上眼睛 愿望是口井,Make a wish make a wish,你会听见真诚的回音……

而且,这还是“静态”数据,如果是交易数据,再假如业务忙碌那么一些,那么程序很可能就跪了。说个笑话,某公司SAPMES系统的集成,关于生产订单的投料和工序确认数据同步,一开始设定的同步时间是5分钟,一个月后改成了10分钟,半年后改成了半小时

对于ERP系统来说,数据是不断发生变化的,那么DW里的数据只能通过ETL的方式从ERP系统进行批量抽取,如果抽取频率太高,又会对ERP的运行产生很大的压力,所以一般来说DW的数据都是采用T+1的方式从生产系统抽取。

随着时代的发展,现在的企业越来越依赖数据分析支撑决策,越早拿到最新的数据进行分析,就越容易及时做出正确的决策,从而在残酷的商业竞争中抢占先机。所以实时数据获取是个很重要环节。

那么,有没有什么好的方法,能够解决数据传输的效率问题,能够大幅减少工作量而又简单易用呢?

下面我们就来谈谈HVR

HVR是一家专注在实时数据集成领域的技术方案提供商, 许多世界顶级的企业都是HVR的用户, 例如通用电气, 波音飞机等等。HVR数据集成解决方案的基本特点是基于数据库事务日志的连续数据变化捕获技术(CDC)。简单的说就是通过直接读取生产数据库的事务日志就可以捕获业务数据的变化信息,这就避免了对数据库的SQL查询访问,不会对数据库系统产生压力,是一种非侵入式的数据捕获技术;由于对数据库的事务日志的分析是实时进行的,所以数据抽取的延迟时间也可以缩减到秒级,充分满足企业对于实时BI或者实时大数据的要求。

那么对于ECC里的cluser/pooled table怎么办呢?别着急, HVR提供了一个名为SapXForm的插件,可以在数据捕获的同时将LOB对象数据“解锁“为标准的格式化数据。举个例子:

假设我们现在需要将SAP ECC中的数据复制到位于云上的AWS Aurora大数据分析平台。我们只需要使用HVR完成以下步骤:

  1. 定义数据源

给出数据库(例如oracle)的访问信息(地址、用户名、口令等)

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

 2. 定义数据目标

目标数据库可以是在本地或异地的数据中心,也可以在云上。 HVR支持各种异构场景的数据实时同步。在这里, 我们以AWSAurora大数据分析平台为例:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

 3. 定义需要复制的对象

假设我们需要获取SAP系统中业务代码为BSEG(财务凭证行项目)和T030科目自动记账定义)的数据,我们可以直接在选取表的时候按业务代码过滤找到需要的表

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAA

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

 4. 定义复制规则

HVR中,复制的规则也被成为”Action”, 只需要简单的定义如下规则就可以完成数据的抽取,转换(解锁)和装载的工作流程。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


 5. 启动初始化同步数据和实时增量同步作业

HVR贴心的提供了在线初始化同步功能, 这样在进行首次存量数据的同步的时候,就不用中断业务啦。嗖的一下, 数据就自动整整齐齐分门别类的放到DW中去, 用户就可以随时使用报表查询工具或者分析工具来使用这些数据啦。

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAA

在我的笔记本上, 这十几万条记录只花了22秒钟的时间。 

 


怎么样, 10万多条记录的T030表,即使使用我的笔记本电脑来测试也只用了5.1秒就完成了数据比对,这速度是不是杠杠的呀?

 7. 数据查询

完成以上工作后, ECC系统的数据就可以被实时的同步到你的数据仓库或大数据平台上了。 数据也被解锁为标准的数据格式, 供用户直接访问。

最后, HVR可以将数据多种不同类型的平台之间进行复制,快看看有没有你感兴趣的?


网友评论

登录后评论
0/500
评论
晨曦美
+ 关注