数据的更新(同步)有三种方式: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:
)