BW基于ALE的主数据增量机制分析
1 概述
前段时间在项目中碰到一个问题,地点物料0MAT_PLANT_ATTR属性主数据因为有两个多月没有做增量更新,导致在之后的每次增量抽取活动中因为抽取的数据量过大使得在源系统的进程中发生short dump。
发现在这问题后,为避免增量抽取的数据量过大,先给0MAT_PLANT_ATTR重新做了一次无数据传输的初始化和FULL REPAIR UPDATE,然后再重新再做增量抽取。但是发现在源系统端的数据抽取进程中还是发生了short dump,错误的原因也是一样要抽取的数据量过大,导致内存发生错误,如图1.2。
图1.2
为什么0MAT_PLANT_ATTR在做了初始化以后,在做增量抽取时还是会发生数据量过大导致内存溢出的错误呢,在网上查了相关资料以及给SAP发了
MESSAGE后得到了答案。原来在BW中有一部分主数据的抽取是基于ALE增量机制,该类型的增量数据保存在表BDCPV中,由字段PROCESS标识
数据是否已经抽取过,如图1.3所示。按正常情况,数据源做完初始化后,应该将初始化时间点前的所有数据都打上已处理标记,这样下次增量抽取时就可以避免
重复抽取这部份数据,但是显然SAP由于某些原因(应该算是SAP的一个BUG)忽略了这一点,导致数据抽取出现异常(当然一定要数据量够大时才会出现问
题)。这一类型的主数据增量不会保存在队列中,即虽然在RSA7中可以看到数据源0MAT_PLANT_ATTR,但是查不到任何数据,这一类数据源也不
支持重复增量。
2
查看数据源的增量处理类型
在源系统端运行TCODE:
RSA2,可以查看该数据源是否支持ALE指针增量机制,怎么鉴别一个数据源所对应的消息类型呢,可以通过表ROOSGEN来查看。查到数据源对应的消息类型后,还需要查看该消息类型是否已经激活,可以通过表TBDA2查看。
3
主数据和BDCPV之间的关系
以物料属性0MATERIAL_ATTR数据源为例,说明一下主数据更新和表BDCPV之间的关系。物料属性的更新在MM01中进行,当我们增加或修改了
某一个物料后,数据不但保存在MARA,而且还会将修改的数据保存到表BDCPV中,当我们在MM01中新增加一个物料后,表BDCPV中也增加了一条数
据记录,消息类型为RS0059(每个系统都有自己的消息类型,不是统一的),在CREATETIME为20091211103441时,表MARA也生
成了一条新数据(Change
ID为‘I’)。
物料属性0MATERIAL_ATTR数据源执行FULL UPDATE或DELTA PROCESS时,extractor
function module会使用不同的方法读取相应的数据,如图3.1所示,当是Full或Initial的时候,数据从Base
Table中读取,当是Delta时,数据从BDCPV中读取。
图3.1
4
增量抽取出现错误时的处理办法
在其他类型的增量数据处理中,如果当前的增量处理出现失败的情况,一般的处理办法是将当前请求置红,将目标数据中的请求删除,这样在下次做增量抽取时会自
动重新抽取这次没有抽成功的数据。但是在基于ALE的增量抽取机制中不支持重复抽取,因此不能简单的置红删除。而是需要先将错误请求置绿,处理好
BDCPV中记录的标识后,再重新运行增量信息包。
BW基于ALE的主数据增量机制分析的更多相关文章
- linux内核3.4基于wakeup_source的autosleep机制分析
点击打开链接 一:wakeup_source简介: linux 3.4内核PM使用了wakeup_source来保持唤醒状态,也就是keep awake.之前android一直是基于Linux加入了w ...
- 苏宁基于Spark Streaming的实时日志分析系统实践 Spark Streaming 在数据平台日志解析功能的应用
https://mp.weixin.qq.com/s/KPTM02-ICt72_7ZdRZIHBA 苏宁基于Spark Streaming的实时日志分析系统实践 原创: AI+落地实践 AI前线 20 ...
- Linux mips64r2 PCI中断路由机制分析
Linux mips64r2 PCI中断路由机制分析 本文主要分析mips64r2 PCI设备中断路由原理和irq号分配实现方法,并尝试回答如下问题: PCI设备驱动中断注册(request_irq) ...
- Android内存机制分析1——了解Android堆和栈
//----------------------------------------------------------------------------------- Android内存机制分析1 ...
- Linux内核态抢占机制分析(转)
Linux内核态抢占机制分析 http://blog.sina.com.cn/s/blog_502c8cc401012pxj.html 摘 要]本文首先介绍非抢占式内核(Non-Preemptive ...
- Linux x86_64 APIC中断路由机制分析
不同CPU体系间的中断控制器工作原理有较大差异,本文是<Linux mips64r2 PCI中断路由机制分析>的姊妹篇,主要分析Broadwell-DE X86_64 APIC中断路由原理 ...
- 基于 JDK 的动态代理机制
『动态代理』其实源于设计模式中的代理模式,而代理模式就是使用代理对象完成用户请求,屏蔽用户对真实对象的访问. 举个最简单的例子,比如我们想要「FQ」访问国外网站,因为我们并没有墙掉所有国外的 IP,所 ...
- Android内存机制分析2——分析APP内存使用情况
上面一篇文章说了Android应用运行在dalvik里面分配的堆和栈内存区别,以及程序中什么代码会在哪里运行.今天主要是讲解一下Android里面如何分析我们程序内存使用情况.以便后续可以分析我们程序 ...
- Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL
Linux 线程实现机制分析 Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL http://www.ibm.com/developerworks/c ...
随机推荐
- 5.18-5.22js调制样式
这次主要是通过改变列表的浮动值来实现点击跳动效果,因为是点击列表的的每一个li都可跳动整个列表,所以是双for循环,第一个是控制点击事件,第二个是循环改变每个li的flot值.另外要改变每次点击后的点 ...
- JSON.parse解析单引号名值对报错
今天整理代码的时候发现JSON.pare解析时会报了一个错误,而且很难找原因,调试了几分钟没有成功,猜测可能是单双引号引起的错误.修改了单双引号后程序正常运行了,现在记录下这个bug. 关于JSON. ...
- [转]Flash Socket通信的安全策略
昨天做测试的时候遇到一个问题,做好的SWF在Flash AS3中调试通过,但是发布到html中之后就无法得到数据了.查了一些资料之后找到了解决办法.这里感谢 剑心 提供帮助,以及同事若水三千提供Jav ...
- google hack 之 查询语法
google hack 之 查询语法 文/玄魂 前言 谷歌网页搜索技术,大部分在百度等搜索引擎中也适用.同样,这些搜索技术是来源于传统数据库检索技术,因而,对这部分的学习,能为后续章节的数据库检索 ...
- SRS文档 王倩倩 201303014004
设计阶段 Spec 图书管理系统functional spec:软件功能说明书, 主要用来说明软件的外部功能, 和用户的交互情况 (把软件当作一个黑盒子).从用户的角度描述软件产品的功能, 输入,输出 ...
- 配置Linux自动挂载
使用mount命令来挂载硬件,在Linux重启后这些挂载信息会丢失,因此对应磁盘这类硬件,需要配置自动挂载来保证系统重启时进行自动挂载. 自动挂载信息保存在文件/etc/fstab文件中 查看该文件的 ...
- C#与数据库访问技术总结(十三)之DataReader对象
DataReader对象与数据获取 DataReader对象以“基于连接”的方式来访问数据库. 也就是说,在访问数据库.执行SQL操作时,DataReader要求一直连在数据库上. 这将会给数据库的连 ...
- paip.提升效率--僵尸代码的迷思
paip.提升效率--僵尸代码的迷思 僵尸代码是指你的代码库里被注释掉的那部分代码, 很少去使用它,就像僵尸一样, 看雷kill-the-zombies-in-your-code ========== ...
- Jquery对文本框的值、字符串的验证;正则表达式字符串的验证
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Windows Server 2016软件定义存储:Storage Spaces Direct的关键特性
[TechTarget中国原创] 微软在Windows Server 2016 Technical Preview 2中引入了Storage Spaces Direct.这个特性将本地存储扩展为高可用 ...