BW:数据源抽取机制(这篇是以前的笔记,写得很差,有不少错的地方,留着给自己看)

2023-05-16

题记:忽然想到这么个问题,后勤数据源和非后勤数据初始化有何区别,然后进行周边的拓展,所以就形成了下文。大部分知识源于TBW350SAP SDN

 

对数据源抽取机制的深入探讨

一、什么数据源需要初始化,为什么要进行初始化

  • 有增量机制的数据源就需要初始化,初始化的目的是为了给系统一个时间点,来生成Delta队列。
  • 怎样进行初始化:其实当我们跑I包的时候,Delta队列就建立了,这个和Setup table没有关系
  • Setup table是怎么回事儿:在LOLogistic,后勤)的抽取中,Extractor不允许直接操作应用表,也许是为了方式读写的冲突,也许是为了保证凭证的安全,也许是为了减轻负载反正就是不行,所以就得在initialization的时候Delete然后Fill Setup table。仅限于LO的数据源。
  • Reasons for why setup tables is :

    1) Main reason is HUGE VOLUMES OF LO data.

    2) To avoid interdependency, while still making changes transactional tables in R/3.

    3) Customized cluster and pool tables enhancing extraction easier.

  • FI的为什么不用Setup table:因为FI的数据可以直接从Table里抽取。
  • RSA7(Delta Queue),这是虚拟的,真实存放数据的是SMQ1 (Out bound Queue)

V3 Update Mode

1Based on your delta updated mechanism, it will be either V1 or V2 or V3

2Delta tables will be based your delta updated process ,it will be either Extraction queue or Update tables and the collective run will be either extraction collective run or V3 collective run

    

    所谓的V1V2V3有如下解释,这个东西在激活LO数据源的信息结构时可以看到:

  • V1 同步更新模式,即凭证产生就更新增量,与业务数据同步更新;
  • V2 异步更新模式,就如一个两步的操作一样,第一步业务凭证更新了,然后再更新第二步的数据源增量表
  • V3 异步更新模式,与V2的区别在于他的更新时通过后台事件来触发的,即定一个任务定是收集增量并更新至增量表

 

下图源自LBWE

这里三种简单的说一下,更新方式的解释详见附件:Gist of LO Cockpit Delta,据说本来还有个Serialized V37.0后就被取缔了。

  • Direct Delta:这是一种V1,直接V1Delta Queue,我们目前的LO数据源统统采用这个
  • Queue Delta:这是一种混合型,先V1Extraction Queue,后V3Delta Queue
  • Unserialized V3 Update:这是一种V3,先V3Update Table,后V3Delta Queue

 

来张图,解释下整个过程:

  1. RecordsTransaction tables
  2. 在初始化时,执行一个将Transaction data存放在setup table里的setup操作,也就是我们的填充设置表
  3. 在执行初始化和Full包时读取的是设置表的内容
  4. 新的Transactions被送到Transaction tables,之后被提取到Update tables / Extraction QueueSM12/SM13),也就是SMQ1
  5. 之后呢,会有一个周期性的Job,来把数据提取到Delta Queue中(如果是V1的话就不用啦)
  6. Delta上载执行时,会去读这个Delta Queue

二、Delta机制

Time Stamp

我们的R/3系统提供了这么一种功能,来标记新旧数据的差别,可以通过Time stampCalendar DayNumeric Pointer来标注。

设置方法:

  1. 数据源要提供字段,用来填充Delta Specific Field
  2. RSO2àGeneric DeltaàTime stamp,有需求可以设置Safety Interval Upper/Lower Limit,拓展Time stampCalendar Day的边界。

只要在建立数据源的时候设置增量的特定字段,选取时间标记。这里拿ZMAT_ATTR做例子,选的是Calend. DaySafety Interval Upper Limit1Calend. DaysNew Status for Changed Records,这么说来,就会每天跑一次,每次跑前两天的数据,而且以最后更改的记录为准(这个在下面会说到)。

这样做的效果可以在RSA7里看到,点Generic DeltaCurrent Status

很简单,当前的Time stamp

Notes:为什么不是所有的都有呢?因为这个叫做Generic Delta,可以简单的看一下,LO的数据源一个都没有,那种比较BT,一般来说非后勤和主数据还有自建的数据源都是Generic Delta

看几张表:ROOSPRMSC222系统

要了解这张表,还需要知道一个概念叫做LUW

LUW is logical unit of work. The qRFC outbound queue controlled using an Outbound Scheduler (QOUT Scheduler). The QOUT Scheduler prompts the transfer of a LUW to a target system when all previous LUWs in this queue have been processed. When one LUW has been executed, the QOUT Scheduler automatically executes the next LUW in the queue.

In other words when we request delta load from BW, Source system will identify the last delta records which are in form of TID's by using ROOSPRMSC table and it will delete previous confirmed LUWs(repeat delta table) and Process new LUWs(delta table)

 

另外,想看这些请求号,可以到表RSREQDONE,这个要在200系统里。

 

Notes:咱们用的Time stamp叫做UTC Time Stamp,什么是UTC,等同于GMT,就是世界时,咱们要+8:00,也就是说这个DTP的时间是2009.03.13,08:36:26

PS:不过和222那边有那么10s的时间差(RSREQDONE表里的时间小10S),我也不知道怎么回事儿,后来查了下03_BF的,也是有10s的差,知道的同志可以告诉我呀。。。当然这些并不重要

 

接下来几张表:

ARFCSSTATE

ARFCSDATA

TRFCQOUT

不多做解释,参照附件BW_DELTA-QUEUE-详细说明,第11

BW Delta Process

这个可以用两张表来做解释:

第一个:

ROOSOURCE

这里的四个数据源,分别是LO(后勤),FI,主数据和自建数据源,各有不同。

这里的Delta Process共有20种,于是需要第二张表:

RODELTAM

这里的几个列,控制了Delta方式对镜像的操作,序列化方式,Delta处理类型等等。

需要着重的是DeltaType

D Generic Delta for Service API

E Extractor Delivers OLTP Source Delta——这种方式叫做PULL

means the delta data records are determined during the delta update by the data source extractor, updated to the delta queue and passed on to BI directly from there.

一般来说:

  • CO的数据源都是ADD的,差额镜像,E
  • FI的基本都是AIE,后镜像,E
  • LO的基本都是ABR,这个就不用说了,很明细,新、前、后、翻转的镜像都存,量很大,D
  • 自建的默认是AIE,同FIBT的是没有提供更改方法,所以自建的统一都是AIE),E
  • 主数据的一般采用AIEAIMNEWE,说明比较侧重结果和新增数据

 

下面简述下AIEABR的区别:

  • ABR的方式注定了,不仅适合直接上载到DSO,可以直接上载到CUBE,不通过DSO,因为不仅序列化,而且是连带各种镜像。
  • AIE不同,只支持后镜像,也就是说,只能首先加载到DSO,然后进行分析,会在激活数据时帮我们补齐前镜像,到DSOLOG表里,从而保证了DSO的明细要求,又能在CUBE提取LOG表的时候获得正确的数据。因为CUBE只有汇总,没有覆盖功能。

 

最后还要说明一下,FI与其他模块的数据抽取方式不太一样。

  • FI是通过BW的请求,到R3中执行对应的FM,然后获得数据,写入DELTA队列,这种方式就叫做PULL。自定义数据源也是这样的方式。一般来说,时间都是1h。如下图:RSA2

  • 对于其他模块,如MM,是通过将数据写入DELTA队列,BW请求后,并不直接读取真实的数据源,而是读取DETLA队列。
  • MM,激活信息结构的时候,会让我们选择,更新类型,也就是V1V2V3的方式,与FI的抽取方式差别太大,而且需要我们在源系统进行必要的操作。感觉好像不是一批人开发的,实现DELTA的逻辑从本质上不同,SAP的解释是说,对于不能直接实现DELTA抽取的数据源,可以采用这种方式。

 

另外,关于FIDelta方式,有如下解释:节选自SAP HELP,另外附件里还有一些Notes,有兴趣可以看下

Delta Method

Delta extraction enables you to load into the BW system only that data that has been added or has changed since the last extraction event. Data that is already loaded and is not changed is retained. This data does not need to be deleted before a new upload. This procedure enables you to improve performance unlike the periodic extraction of the overall dataset.

Financial Accounting line items are read by extractors directly from the tables in the SAP R/3 system. A time stamp on the line items serves to identify the status of the delta data. Time stamp intervals that have already been read are then stored in a time stamp table. The delta dataset is transferred to the BW system directly, without records being transferred to the delta queue in the SAP R/3 system (extractor delta method).

The Financial Accounting line items are extracted from the SAP R/3 system in their most recent status (after-image delta method). This data method is not suitable for filling InfoCubes directly in the BW system. To start with therefore, the line items must be loaded in the BW system in an ODS object that identifies the changes made to individual characteristics and key figures within a delta data record. Other data destinations (InfoCubes) can be provided with data from this ODS object.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BW:数据源抽取机制(这篇是以前的笔记,写得很差,有不少错的地方,留着给自己看) 的相关文章

  • github进行修改

    1 xff09 git status xff1a 可以让我们时刻掌握仓库当前的状态 2 xff09 git diff 文件名 xff1a 查看改变的详细信息 xff0c 显示的结果是Unix通用的diff格式 步骤 xff1a 1 修改文件
  • C# 内存与性能优化

    C 内存与性能优化 https www jianshu com p d56f79d83ebd 前两周分享了资源配置与资源管理 xff0c 今天分享一种特殊的资源脚本数据 在Unity项目中 xff0c 我们通常使用C 编写脚本 xff0c
  • Gazebo仿真错误与技巧

    xff08 1 xff09 创建的环境不能保存 打开gazebo创建环境以后 xff0c 不能保存 xff0c 在打开是需要加权限 xff08 sudo xff09 xff0c 详细说明 如果是build可以先保存成模型 xff0c 然后再
  • 《Android入门之旅》

    因为本人在公司任职Java和JavaWeb相关开发工作 EXTJS和JQUERY近年来在网站中使用广泛 EXT江湖对我帮助很大 该书由浅入深地解析了Ext框架的方方面面 xff0c 包括JS基础 Ext的DOM和CSS封装 内置对象的扩展
  • 转发——从搭建小系统到架构分布式

    从搭建小系统到架构分布式 从搭建小系统到架构分布式 SpringBoot是目前Spring技术体系中炙手可热的框架之一 既可用于构建业务复杂的企业应用系统 xff0c 也可以开发高性能和高吞吐量的互联网应用 Spring Boot 框架降低
  • 2018-8-30华为机试第三题

    一个很明显的递归问题 package cn csu ksh import java util ArrayList import java util List import java util Scanner public class Mai
  • 海康威视web3.2开发包开发使用说明

    首言 xff1a 通过海康威视的最新web开发包工具进行js调用引入至vue项目中 xff0c 实现监控设备的对接 xff0c 监控功能的实现 3 2无插件js库同时支持插件安装的模式 目录 首言 xff1a 一 海康威视开发平台 xff1
  • 游戏的navmesh 与rvo动态避障算法(1)

    目前很多手游中如果需要寻路 xff0c 很多时候复杂地形都是需要用到navmesh xff0c 而比较常用的navmesh 系统 xff1a 1 astarpathfinding xff1a 一个老外开发的寻路插件 xff0c 内置有很多寻
  • Python3 指数函数 | numpy.power() math.pow() numpy.exp2() a**b

    对数函数用法 单纯求一个数的指数函数 xff0c 直接用a b比较好 xff1f 2 3 2的三次方 使用pow x y pow 有两种 xff0c 一种是python内置函数 xff0c 一种是math pow 使用python内置函数调
  • SVO2.0

    rpg svo pro open即svo2 0版本在上一年开源了 xff0c 对svo2 0接触了有一小段时间了 xff0c 感觉代码功能和一些函数实现等相比svo1 0版本有区别 xff0c 所以准备把这块好好总结下 xff0c 争取白话
  • ROS CMakeLists.txt中catkin_package和INCLUDE_DIRS的区别

    CMakeLists txt中 catkin package INCLUDE DIRS include 这里代表的是catkin的构建选项 xff0c INCLUDE DIRS表示将使用INCLUDE DIRS后面的内部目录include
  • 利用ROS框架搭建云平台提供机器人服务

    我们要怎么做呢 我们在云平台我们识别物体之后输出的是全局的二维码坐标 x y z 我们接下来要做两件事情 一种是使用云端的服务 xff08 在ROS中的表现形式是云平台提供的action xff09 第二种是请求云端的数据 xff08 可以
  • 虚拟现实技术vr可以用来干什么?虚拟现实技术vr有什么特征

    科技行业的不断蓬勃发展 xff0c 每天会出现一些新的科技产品 xff0c 例如现在很火的虚拟现实技术vr xff0c 虚拟现实技术用的领域很多 xff0c 就拿游戏行业来说 xff0c 玩家可以通过vr眼镜 vr手柄等体验vr游戏 xff
  • vr直播是如何实现的?vr直播都有哪些优势

    科技改变了我们的生活方式 xff0c 提起科技相信大家对这个直播行业恐怕都不陌生 xff0c 最近直播行业也玩出来新的花样 xff0c 引进了vr技术 xff0c 摇身一变 xff0c 变成了vr直播 xff0c 很多朋友不太理解vr直播是
  • Python归并排序

    归并排序 数据科学家每天都在处理算法 然而 xff0c 数据科学学科作为一个整体已经发展成为一个不涉及复杂算法实现的角色 尽管如此 xff0c 从业者仍然可以从建立对算法的理解和知识库中受益 在本文中 xff0c 对排序算法归并排序进行了介
  • 平衡车PID调节总结

    https blog csdn net a568713197 article details 82845959
  • FreeRTOS详解三

  • Invalid bound statement (not found)出现的原因和解决方法

    解决错误的步骤 出现了什么错误可能导致的原因解决办法 出现了什么错误 错误截图 xff1a BindingException 数据绑定异常 not found 找不到 org apache ibatis binding BindingExc
  • TI Processor SDK 如何生成例程

    TI现在新的SDK都叫Process SDK了 例程要自己生成 这样好多人都说自己找不到例程在哪里 其实就是生成这一步搞不定 我以AM5728为例子说 先打开到pdk的目录 编辑箭头所示文件 安装在默认路径Cpan的可以忽略这一步 否则要改
  • PCIE BAR空间理解

    PCIE应用程序编程 xff0c 首先就要理清PCIE BAR空间到底说的是什么 在PCIE配置空间里 xff0c 0x10开始后面有6个32位的BAR寄存器 xff0c BAR寄存器中存储的数据是表示PCIE设备在PCIE地址空间中的基地

随机推荐

  • 老男孩读PCIe之五:TLP结构

    来源 xff1a http www ssdfans com p 61 3683 无论Request TLP xff0c 还是作为回应的Completion TLP xff0c 它们模样都差不多 xff1a 图5 1 TLP主要由三部分组成
  • vxWorks6.9及workBench3.3常见配置

    1 双斜杠注释 在workBench集成开发环境当中 xff0c 默认的注释方式为 xxxxxx 如果想要使用 注释的方法必须修改workBench 的编译选项 xff0c 为编译选项添加c99支持或者gnu89 在编译选项中添加 std
  • 可能是最全的FreeRTOS源码分析及应用开发系列

    可能是最全的FreeRTOS源码分析及应用开发系列 FreeRTOS 是一个可裁剪的小型且免费的 RTOS 系统 xff0c 尺寸非常小 xff0c 可运行于微控制器上 其特点包括 xff1a 内核支持抢占式 xff0c 合作式和时间片调度
  • FreeRTOS系列|FreeRTOS简介

    1 RTOS简介 RTOS全称为 Real Time Operation System xff0c 即实时操作系统 RTOS强调的是实时性 xff0c 又分为硬实时和软实时 硬实时要求在规定的时间内必须完成操作 xff0c 不允许超时 xf
  • FreeRTOS系列|任务创建和删除

    1 任务创建和删除API函数 xTaskCreate 函数 xff1a 动态创建一个新的任务 xff0c 每个任务都需要RAM来保存任务状态 任务控制块 43 任务栈 xff0c 此接口采用动态分配内存资源 BaseType t span
  • FreeRTOS系列|多任务调度

    1 多任务启动流程 多任务启动流程如下表所示 启动后以下各函数由上至下依次执行含义osKernelStart 启动内核vTaskStartScheduler 启动任务调度器xPortStartScheduler 启动调度器prvStartF
  • PTP 报文格式

    HeaderBodySuffix34 字节Variable lengthOptional 所有的 PTP 帧都包含一个公共报头 xff0c 它决定了协议版本和消息类型 xff0c 还定义了消息的剩余内容 所有多字节字段以大端顺序发送 xff
  • makefile:make -C M=参数的使用

    Makefile为 xff0c PWD span class token operator 61 span span class token punctuation span shell pwd span class token punct
  • BW笔记(2011-10-24更新至No.237)

    1 同一个变量名的UID可能有多个 xff0c 记得注意 2 在查找时要注意技术名称还是名称 xff0c 因为查询时会在两个中进行 xff0c 模糊查询时要细心 xff0c FV与V都可以查到 3 复制的时候注意长度 xff0c 过长的会不
  • rpmsg 内核开发 用户层接口

    地址 xff1a https blog csdn net thisway diy article details 129195479 韦东山 Tina Linux E907开发指南 AMP 环境搭建 7 1 rpmsg 内核开发 7 2 r
  • __raw_writel, writel_relaxed 和 writel的区别

    因为对别的平台不了解 xff0c 下面仅谈它们在ARM上的区别 raw writel xff1a 因为有volatile关键字 xff0c 所以编译器不会打乱多个 raw writel的执行顺序 对于ARM而言 xff0c 当多个写以代码的
  • WFE和WFI的区别

    1 概念 xff1a WFI Wait for interrupt 和WFE Wait for event 是两个让ARM核进入low power standby模式的指令 xff0c 由ARM architecture定义 xff0c 由
  • Ubuntu16.04安装中文输入法

    转载地址 xff1a http blog csdn net suxiang198 article details 52040283 Ubuntu16 04安装完后 xff0c 和12 04以及14 04都不一样 xff0c 并没有中文输入功
  • QT linux安装

    转载地址 xff1a http www cnblogs com tangkaixuan p 6504102 html 文章来自https lug ustc edu cn sites qtguide 1 4 Qt在Linux下安装 Qt在Li
  • Linux CAN编程详解

    转载地址 xff1a http velep com archives 1181 html Linux CAN编程详解 是一篇百度文库上的文档 xff0c 主要描述了以下内容 xff1a can总线介绍及其帧类型 xff1b Linux 系统
  • buildroot学习(十)——at91sam9g45软件平台更新

    转载地址 xff1a https blog csdn net srf1986 article details 52474697 xff08 xff11 xff13 xff16 xff09 spice protocol In computin
  • killall 、kill 、pkill 命令详解

    转载地址 xff1a https www cnblogs com rsky p 4886043 html killall 命令 Linux系统中的killall命令用于杀死指定名字的进程 xff08 kill processes by na
  • PCIe扫盲——PCIe简介

    转载地址 xff1a http blog chinaaet com justlxy p 5100053066 PCI Express是继ISA和PCI总线之后的第三代I O总线 xff0c 即3GIO 由Intel在2001年的IDF上提出
  • Adaptive Autosar通讯层:ARA::COM中的Instance Identifiers

    一般概念 实例标识符 在收发两端都是要用的 是很核心的概念 proxy端用来搜索服务 xff0c skeleton端用来创建服务实例 站在API的角度来看 xff0c 这样的识别符是和特定的技术绑定的 所以 xff0c 标识符的结构和内容都
  • BW:数据源抽取机制(这篇是以前的笔记,写得很差,有不少错的地方,留着给自己看)

    题记 xff1a 忽然想到这么个问题 xff0c 后勤数据源和非后勤数据初始化有何区别 xff0c 然后进行周边的拓展 xff0c 所以就形成了下文 大部分知识源于 TBW350 和 SAP SDN 对数据源抽取机制的深入探讨 一 什么数据