声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4296684.html
数据的更新(同步)有三种方式:V1、V2、V3
V1 - Synchronous update,同步更新,数据会立即更新到目的地(如应用数据表Application Tables、增强队列Delta-Queue),数据的更新动作是由用户数据保存(如点击保存按钮)动作触发,并且数据的更新动作与用户保存动作是在同一程序中完成(比如用户点击保存按钮后,要等到数据更新完成后,按钮可能才弹起来,在这一过程中用户不能操作界面上的其他功能)
V2 - Asynchronous update,异步更新,数据不会立即更新到目的地,数据更新动作由另一线程(或另一进程)来完成(但这一更新线程的启动是由用户保存动作所在程序来启动),所以用户点保存按钮后,就可以立即去做其他事情,界面不会无响应
V3 - Batch asynchronous update,批次异步更新,与V2类似,不过更新线程不是由用户保存动作所在程序来启动,而是一个后台Job在后台收集定时执行启动
 
数据同步到Delta-Queue中时,有三种Delta-Queue更新模式(Direct Delta、Queued Delta、Unserialized V3 Update),这三种更新模式中的数据更新(同步)过程就使用到了上面的V1、V2、V3三种更新方式一种或几种:
                                                                          目的地(数据需同步到哪里)
更新模式Update Mode Application Table Extraction Queue Update Table Delta-Queue
​Direct Delta V1 X(不支持,数据不经过此目的地) X(不支持,数据不经过此目的地) V1
Queued Delta V1 V1 X(不支持,数据不经过此目的地) V3
Unserialized V3 Update V1 X(不支持,数据不经过此目的地) V3 V3
 
 
 
数据上传到Delta Queue中有三种更新模式Update Mode:
1、Direct Delta:在用户点保存按钮后,除立即以V1更新方式保存应用数据表外,还立即以V1更新方式将增量数据直接(不需经过中间临时转存区,如Extracties Queue抽取队列、Update Table更新表)同步到Delta Queue中
2、Queued Delta:在用户点保存按钮后,除立即以V1更新方式保存应用数据表外,还会立即以V1更新方式将数据存储到Extraction Queue抽取队列,而Extracties Queue抽取队列中的数据会则以V3更新方式同步到Delta Queue中
3、Unserialized V3 Update:在用户点保存按钮后,立即以V1更新方式保存应用数据表,但不会立即更新到Update Table,而是通过V3方式同步(经测试,点保存按钮后数据会立即到Update Table表中,可以使用SM13来监控查看),并且数据从Update Table到Delta Queue也是采用V3更新方式同步,在整个同步过程中没有保证数据的先后顺序,所以最终Delta-Queue中的数据是无序的
 
注:这里虽然讲的是后勤模块,其实财务模块也一样,也是有Delta-Queue区的,也就是说不管是Push还是Pull都,增量数据都会先经过在Delta-Queue(注:财务模式数据源抽时还是直接从Application Table里抽增量的,只是在传到BW之前,会在Delta-Queue里保留一份,防止抽取失败后重抽)
 
 
(上图中数据从抽取队列Extraction Queue移到增量队列Delta Queue时,需要通过Job来完成,Job Control
   
 

后勤模块数据源的增量队列(Delta-Queue)三种更新模式(Update Mode)的更多相关文章

  1. 后勤数据源增量队列Delta Queue(RSA7)中的增量更新区Delta Update、增量重复区Delta Repetition

    声明:原创作品,转载时请注明文章来自SAP师太技术博客:( 博/客/园www.cnblogs.com)www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. Spring Boot 之 RabbitMQ 消息队列中间件的三种模式

    开门见山(文末附有消息队列的几个基本概念) 1.直接模式( Direct)模式 直白的说就是一对一,生产者对应唯一的消费者(当然同一个消费者可以开启多个服务). 虽然使用了自带的交换器(Exchang ...

  3. 消息队列rabbitmq的五种工作模式(go语言版本)

    前言:如果你对rabbitmq基本概念都不懂,可以移步此篇博文查阅消息队列RabbitMQ 一.单发单收 二.工作队列Work Queue 三.发布/订阅 Publish/Subscribe 四.路由 ...

  4. 通过GCD、NSOperationQueue队列、NSThread三种方法来创建多线程

    #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...

  5. RabbitMQ五种消息队列学习(三)–Work模式

    由于在实际应用中,简单队列模型无法解决很多实际问题,而且生产者和消费者是一对一的关系.模型较为单一.故引入Work模式. 结构图 一个生产者.多个消费者. 一个消息只能被一个消费者获取. 测试实现:  ...

  6. python笔记9 线程进程 threading多线程模块 GIL锁 multiprocessing多进程模块 同步锁Lock 队列queue IO模型

    线程与进程 进程 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成.我们编写的程序用来描述进程要完成哪些功能以及如何完成:数据集则是程序在执行过程中所需要 ...

  7. Python-Day9 Paramiko模块/进程/线程/RabbitMQ队列

    一.Paramiko模块 1.Paramiko安装 Python的目录下有个Scripts目录,cd到这个目录用这里面的pip命令(如果添加的环境变量可以在cmd直接输入命令):pip install ...

  8. python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数

    上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...

  9. 我理解的数据结构(三)—— 队列(Queue)

    我理解的数据结构(三)-- 队列(Queue) 一.队列 队列是一种线性结构 相比数组,队列对应的操作是数组的子集 只能从一端(队尾)添加元素,只能从另一端(队首)取出元素 队列是一种先进先出的数据结 ...

随机推荐

  1. IOS彩票第二天设置界面(2)

    *********代码的抽取ILBaseTableViewController.h #import <UIKit/UIKit.h> @interface ILBaseTableViewCo ...

  2. 【iCore3 双核心板】例程五:SYSTICK定时器实验——定时点亮LED

    实验指导书及代码包下载: http://pan.baidu.com/s/1eQsKcEY iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  3. android 一个简单的服务例子

    public class MessageService extends Service { // 获取消息线程 private MessageThread messageThread = null; ...

  4. mysql查询结果添加编号

    第一种方法: select   (@i:=@i+1)   as   i,table_name.*   from   table_name,(select   @i:=0)   as   it 第二种方 ...

  5. shell更改目录编码

    #!/ in/bash for i in `find ./laravel -type f` do iconv $i -f gbk -t utf8 -o ${i}.tmp && mv $ ...

  6. websocket和swoole

    <head></head><body><script type="text/javascript">var sock = null; ...

  7. Android高级第十一讲之不同系统间的区别

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Android系统不断的升级,从基础到中级再到高级,逐步升级是软件工程敏捷开发的一个重点,在每个版本 ...

  8. Inside Flask - json 处理

    Inside Flask - json 处理 在处理 web api 时,json 是非常好用的数据交换格式,它结构简单,基本上各种主流的编程语言都有良好的支持工具. flask 中处理 json 时 ...

  9. Range对象理解,浏览器兼容性,获取鼠标光标位置

    一.关于浏览器的兼容性 目前主要有3种关于range的类似的对象,分别是W3C range 对象,Mozzlia selection ,ie TextRange 关于这三种的区别,请查看文档 http ...

  10. Pycharm 2016 2 激活

    选其中一款,一个不行换另一个 1. 选License server激活,输入:http://114.215.133.70:41017/ 2. 43B4A73YYJ-eyJsaWNlbnNlSWQiOi ...