云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

专属服务器_集团企业网站建设_12月免费

小七 141 0

专属服务器_集团企业网站建设_12月免费

1简介

HANA SDI可以满足数据提取、加载和转换的各种需求。在数据加载风格方面,它支持实时复制和批处理,基于push和pull。

在这篇博客文章中,公司自助建站,我想概述一个选项,即基于pull的微批处理如何在简化的用例中与SDI一起工作。showcase利用了HANA XSC运行时(虽然不是最先进的,但仍然适用),其中大部分是设计时对象。一些物料数据集将以批处理方式加载,使用预定的xs cron作业,提供某种扩展选项。

2。上下文

在我们的用例中,微淘客,每分钟、每小时或每天都需要从一个远程源加载材料实体。没有简单的方法允许实时或基于批处理的数据复制。这可能是由于各种原因:

没有CDC可能/允许在源中源中缺少授权合规性问题

因此,必须以涉及一些基本自定义逻辑的方式识别变更数据。

前提条件是基于日期/时间的创建和/或变更属性。它们充当某种标记,52返现网,用于确定下一个delta数据集的范围。由于涉及的表是MARA和MARC,因此可以使用创建和更改日期。最后,XS cron作业以定义的频率触发数据流的执行。

3。HANA/SDI工具集

我们将使用简单的SDI流程图和一些存储过程来实现需求。流程图由两个数据源组成,两个数据源连接在一起(MARA+MARC),人工智能核心,经过过滤后被推送到某个数据汇,即一个目标表中。源表可以基于任何适配器的远程源,通常适用于此类ELT流。

一个参数可以过滤上次成功加载后的数据。存储过程负责查找上次成功执行HANA运行时任务的加载日期。流程图任务的实际执行由HANA XS作业触发。在XS作业定义中,可以在初始负载和增量负载之间进行决定。

以下视觉概述了所描述的步骤。

4。限制

未反映源表中的删除。原因是使用的更改指针、创建或更改日期。考虑到这种方法,没有选项来识别删除,淘客推广怎么做,并且使用流程图将这些删除应用于目标。假设应用记录保存在目标中。

5。实现/数据流建模

首先引入了一个带有一些默认值的类型表达式变量

简化的数据流如下:

两个数据源:ERP表MARA和MARCFILTER_DELTA节点:MARA列的子集+使用varDate变量的FILTER逻辑JOIN\u MARA\u MARC:两个表的内部连接物料\模板\表:目标表

过滤节点采用一些简单的过滤逻辑。它将根据创建日期(ERSDA)或更改日期(LAEDA)进行过滤。

目标/模板表的writer type将设置为upsert,否则您可能会遇到唯一的约束冲突。

SP_loadDateLookup

存储过程SP_loadDateLookup传回HANA运行时任务的上次成功加载日期。定义任务名称作为输入参数。或者,根据您的需求,将返回参数定义为日期/时间/时间戳。

SP_loadMaterial

存储过程SP_loadMaterial触发执行SDI流程图的HANA运行时任务。作为输入参数,定义了初始加载标志。此标志使控制数据流的执行更加灵活,并决定初始加载(最初目标表被截断)和增量加载(考虑变量和最后成功加载日期,无截断)。

用于触发相应任务执行的存储过程可能如下所示:

为了安排SP_loadMaterial过程的执行,将创建一个XS cron作业。这个调度程序.xsjs文件定义了.xsjob文件触发的各个函数。在当前用例中,函数将初始标志传播到过程调用,这样您就可以在作业定义中决定它是用于初始加载还是增量调度程序.xsjs文件:

来自xs管理工作区,您可以决定初始加载和增量加载(URL::/sap/hana/xs/admin/jobs):

表比较转换提供了另一种使用hana SDI实现批处理的方法。我看到的明显的缺点是需要引入DB序列并删除真正的主键。这可能会对这些表的数据建模/消费端产生影响,因此选择哪个选项是有争议的。但是,表比较转换还具有反映删除操作的功能,这在给定的场景中没有反映出来(如限制部分中最初所述)。作为如何实现表比较的参考,请阅读我的另一篇博客(https://blogs.sap.com/2016/06/02/sdi-odata-adapter-in-hana-sps12-get-put-and-replicate/)或者在Youtube上访问HANA学院的资料。根据您希望处理批处理的频率,可以使用日期+时间来实现更精细的粒度。您必须更改任务执行表中的查找,并返回上一次成功加载的时间戳,而不仅仅是日期。