BW之数据源 增量管理DELTA (比较详细的)

news/2024/7/4 9:23:14

SAP中的增量机制,可以有助系统提高数据抽取效率,在初始化执行后,每天只更新新增和修改了的记录。在我们正常的使用或开发中,这些东西并不需要知道,只要数据正常上载,就好了,此处所介绍

的内容之为大家参考用。
在介绍DELTA机制之前,先介绍下DSO和CUBE:
DSO:一般DSO用来存储明细数据,其结构比较简单。对于值的转换(决定了可用的DELTA类型),既可以使用合计,也可以使用覆盖的方式。激活DSO后,其在后台对应3个数据表:
A表,存放了最后激活的数据。即存放了汇总后的数据。
LOG表:存储了数据变化的数据记录
N表,NEW表,临时存放更新的数据,待激活后,将数据转入A表和LOG表,
以上数据表,可以通过在SE11中,描述中搜索DSO技术名称找到

CUBE:典型的星型架构。CUBE只支持数据值的合计上载。
建立了CUBE之后,可以到SE11中,通过在表名中搜索CUBE的名称,找到对应的维表和事实表。
同样都是数据模型,而DSO更多用于存储明细数据,星型架构的CUBE更适合作为分析数据源。关于具体的DSO和CUBE,我们以后再介绍
下面给大家介绍两个表,是定义DELTA类型的基本表,如下:
ROOSOURCE:定义了每个数据源的属性
RODELTAM:定义了每种增量提取方式的方法,即:DP的属性
DP:增量处理名称
T: 标识是否为 仅全量更新
NIM:标识是否为传输 新镜像(即:新数据的状态)
BIM:标识是否为传输 前镜像(即:更新前的状态)
AIM:标识是否为传输 后镜像(即:更新后的状态)
ADD:标识是否为传输 差额镜像(即:更改的差额状态)
DID:标识是否为传输 删除镜像(即:删除状态)
RIM:标识是否为传输 反转镜像(即:冲销的状态)
SER:标识为 哪种序列化方式,即:数据的排序
1. 无所需序列化
2. 所需的请求序列化
3. 所需的数据包序列化
类型:DELTA处理的类型。标识何种数据抽取方式。
BW中的增量机制就是围绕RODELTAM表设置来进行的,首先介绍增量类型的定义,我们假设有一笔业务创建100,而后更改为80,然后删除,对于以上设置,会产生什么样的影响:
ORDER NO STATUS QTY RECODE TYPE
创建订单
100000000 CREATED 100 N 将带有记录类型为‘’的新建记录上载到BW,BW以N载入DSO
更改 100->80
100000000 CHANGED -100 X 前镜像生成
100000000 CHANGED 80 “” 后镜像生成
100000000 CHANGED -20 A 差额镜像生成

标志删除
100000000 DELETED 0 R 反转镜像生成
100000000 D 删除镜像生成

创建100的业务:此为创建操作,传输新镜像,在R3端,以‘’表示新镜像
更改100->80:
如果前镜像设置:以X表示前镜像传输。
如果后镜像设置:以‘’表示后镜像传输
如果差额镜像设置:以A表示差额镜像传输
我们下面用两种类型来说明DELTA在R3和BW端的处理步骤:
ABR:MM中采购用到这种类型,我们可以看出ABR存在新镜像、前镜像、后镜像和反转镜像,我们创建一采购订单,并查看,R3数据源给BW提供的数据。

根据ABR的定义,对于采购订单操作,应按以下顺序传输数据:
ORDER NO STATUS QTY RECODE TYPE
创建订单
100000000 CREATED 100 “” 将带有记录类型为‘’的新建记录上载到BW,BW以N载入DSO
更改 100->80
100000000 CHANGED -100 X 前镜像生成
100000000 CHANGED 80 “” 后镜像生成
标志删除
100000000 DELETED 0 R 反转镜像生成
通过RSA7查看统计的待传输数据:
首先创建采购订单:订单号为4510000010
查看RSA7的统计数据:

将100改为80:

将10项目标志位删除:

关于在BW中的数据上载步骤:
对于存在多种镜像属性的数据源,系统会自动为其增加ROCANCEL字段,作为传输镜像属性值用。我们这里的采购订单数据源,就是这样的类型。
我们知道,CUBE只能合计数据,DSO既可以做合计,也可以做覆盖的汇总,所以,ABR的DELTA类型是既适合CUBE又适合DSO直接更新的。用上面的数据说明,订单传输到合计的更新模式(CUBE或DSO),因

为连带着前镜像一起传输,所以,汇总后的结果就是最后的结果0。如果为覆盖的话(DSO),那么序列化后的最后状态为“R”的记录,这样也实现数据的成功上载。这种方式需要数据源的序列化,对于

ABR设置为2。
因此,这种方式既可以直接上载到DSO也可以直接上载到CUBE。但我们一般都会经过DSO,保证数据模型中,存储了所有的明细数据。

接下来,我们再对FI的数据源和自定义的数据源做一下分析:
首先说明一下,自定义的数据源默认都是AIE的增量处理方式,即:只提供后镜像的数据源,而且没有提供更改增量处理的方法。与FI的数据源相似。这样就说明,这些数据源只能首先上载到DSO,然后

在进行分析。
以我们前面做的自定义的数据源为例:
AIE只支持后镜像,即:所有的新建或修改后,都只将最后的状态传输到BW,并且只支持一种传输方式的数据源不建立ROCANCEL字段,默认为空。
执行初始化,并将数据上载到DSO,不激活DSO数据,我们在后台数据表中,查看DSO的数据变化:
我们通过在SE11中查询ZRSO01的描述,找到了其3个表:
A表:/BIC/AZDSO0100
LOG表:/BIC/B0010239000
N表:/BIC/AZDSO0140
并且,可以看到每个表中,都存在RECORDMODE的字段,有系统自动生成,用来记录RECORD TYPE。
执行到这里,只有N表内存在数据:

激活数据:
A表:保存了最后汇总的数据
LOG表:数据转移到LOG表中,对于以前不存在的记录,自动将RECORD TYPE置为'N'
同时,N表被置为空;

下面,我们将1234567890的记录,修改为800,再次执行DELTA更新,并上载到DSO,查看在未激活之前的状态:
这里说明一下,手工修改记录的时间戳,需参考RSA7中的统计时间:

我们将数据修改为:
以下是未激活DSO前的状态:
A表:
激活后:
A表:

LOG表:
从中可以看出,虽然我们只是将后镜像数据上载,系统自动为我们建立了前镜像,保证了DSO保存明细数据的要求。
关于更多的DELTA处理的问题,大家可以通过以上的方式跟踪数据在系统间的传输来了解。
最后还要说明一下,FI与其他模块的数据抽取方式不太一样。

FI是通过BW的请求,到R3中执行对应的FM,然后获得数据,写入DELTA队列,这种方式叫做”PULL”。自定义数据源也是这样的方式。
对于其他模块,如MM,是通过将数据写入DELTA队列,BW请求后,并不直接读取真实的数据源,而是读取DETLA队列。
FI和自定义数据源,这里就不说了,大家可以参考自定义数据源的文章来了解。
对MM,激活信息结构的时候,会让我们选择,更新类型:
同步更新(V1):DELTA队列与凭证同步更新,如果DELTA队列写入出现错误,那么凭证也被取消
异步修改(V2):与V1相比,写入DELTA若出现错误,不对凭证的保存产生影响
异步收集更新(V3):与做凭证没有关系。在后台定义一程序,定时运行,收集产生变化的数据到DELTA队列。

与FI的抽取方式差别太大,而且需要我们在源系统进行必要的操作。感觉好像不是一批人开发的,实现DELTA的逻辑从本质上不同,SAP的解释是说,对于不能直接实现DELTA抽取的数据源,可以采用这种

方式。

 


http://www.niftyadmin.cn/n/1003467.html

相关文章

【深度强化学习】5. Proximal Policy Optimization

【DataWhale导读】李宏毅老师的深度强化学习之PPO(近端策略优化)部分内容。 文章目录1. 概念/关键词2. from on-policy to off-policy3. PPO/TRPO3.1 PPO-Penalty3.2 PPO-Clip4. 参考1. 概念/关键词 名称解释On-Policy学习的agent和与环境互动的agent是…

BPM分析

BPM的产生缘由 近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,也称为数字化时代,在这数字化的时代里,企业的经营管理都受到了极大的挑战。从上世纪90年代起至今,企业的信息化工作…

Android入门第十三篇之Gallery + ImageSwitcher

上次讲了如何使用Gallery控件,这次就讲Gallery 与ImageSwitcher的结合使用,本文实现一个简单的浏览图片的功能。先贴出程序运行截图: 除了Gallery可以拖拉切换图片,我在ImageSwitcher控件加入了setOnTouchListener事件实现&…

手把手教你安装mysql主从复制

现状描述今天个人办公电脑更换好后,也陆陆续续的进行数据拷贝的工作。上午下载好VMwareworkstation后,就用光盘安装了下Centos6.2,具体安装步骤这里就不一一赘述了。然后考虑到以后会用好几台做集群实验和测试,安装好后&#xff0…

【深度强化学习】6. Q-Learning技巧及其改进方案

【DataWhale打卡】第四次任务,主要是重新学习一下李宏毅的Q-learning部分的知识,推导很多。之前看的时候就是简单过了一遍,很多细节没有清楚。这篇笔记包括了李宏毅深度强化学习三个视频长度的内容。 文章目录1. 概念/解释2. Value Function3…

WIKIOI – 1012 最大公约数和最小公倍数问题

题目描述 Description 输入二个正整数x0,y0(2<x0<100000,2<y0<1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为最大公约数,以y0为最小公倍数. 试求:满足条件的所有可能的两个正整数的个数. 输入描述 Input Description 二个正整数x0,y…

Android MediaScanner 详尽分析

MediaScanner分析 一 MediaScannerService 多媒体扫描是从MediaScannerService开始的。这是一个单独的package。位于 packages/providers/MediaProvider&#xff1a;含以下java文件 l MediaProvider.java l MediaScannerReceiver.java l MediaScannerService.java l Med…

Struts2漏洞分析之Ognl表达式特性引发的新思路

一、摘要在Ognl表达式中&#xff0c;会将被括号“()”包含的变量内容当做Ognl表达式执行。Ognl表达式的这一特性&#xff0c;引发出一种新的***思路。通过将恶意代码存储到变量中&#xff0c;然后在调用Ognl表达式的函数中使用这个变量来执行恶意的代码&#xff0c;从而实现***…