三种DSO的区别

三种DSO(标准DSO、写优化DSO、直接更新DSO)、标准DSO覆盖合计规则

在这里插入图片描述

标准Standard DSO

在这里插入图片描述

标准DSO有三张表:

在这里插入图片描述

标准DSO覆盖合计规则:

数据从源抽取到标准DSO中时,在同一抽取请求中,相同业务主键的数据会合并(合并的方式有覆盖与合计,合计又可为MIN、MAX、SUM中的一种,具体转换规则中可为哪一种合计,则要看Key Figure中的Aggregation聚合中设置的是哪一种合计方式,具体请参考“Key Figure中的Aggregation决定了DSO/CUBE转换规则中的Aggregation合计方式”章节)后存入到New中;抽取数据到DSO New表中时,不管抽取请求中的新数据是否与当前New表中已有的数据主键相同,新抽取请求中的数据合并(相同业务主键才会合并)后,再以新数据记录存入New表,并不会与New表中现有相同业务主键数据发生合并(原因是New中的主键为技术主键,并技术主键与抽取请求有关,同一抽取请求主对应着同一SID,所以不同抽取请求的数据即使业务主键相同的记录也是不会被合并的,合并只发生在同一抽取请求中,且相同业务主键数据之间);如果New中有相同业务主键的数据(多次抽取请求形成的),或者将要被激活的记录与现有Active表里的数据业务主键相同,并且DSO中设置中勾选了“34896934-0e4a-45da-a543-8d1c635ccf39”选项,则在Active时抽数请求会报红(其他不报错即不重复的记录也不能存入到Active表时,报错后整个抽数请求所包括的数据都不会插入到激活表里),如果未勾上,则Active时不会报错,并且相同业务主键的数据在Active表进行合并,并在Change Log表中记录数据变化过程;

New表中的主键为技术主键:

在这里插入图片描述

Active表中的主键为业务主键:

在这里插入图片描述
报表就是直接从该表中抽数,以及上层其他数据目标初始化时从该表里抽数,但上层其他数据目标的Detal更新需从Change Log表里抽数

Change Log表中的主键为技术主键:

1dfbbd31-bea7-4bf6-90d2-d29770bb0d44
激活时,如果某条数据没有发生任何变化,且转换规则的Aggregation设定是覆盖方式,则不会在Chang Log表里产生新的日志记录,但只要修改了某个非主键字段,则会记下日志;但如果转换规则的Aggregation设定的是合计方式时,不管数据是否发生变化,都会记日志

写优化Write-Optimized DSO

在这里插入图片描述
写优化DSO只有一张Active表,数据不需要激活
在这里插入图片描述

数据库表中的主键为:

在这里插入图片描述
如果去掉了写优化DSO的”不检测数据唯一性df419833-e3f6-4c37-b8dc-0b2c72012a0c“的勾时,表示数据存入Active表中时会检查数据是否重复,此如果有语义上相同主键的数据时,抽数时抽取请求会报红,整个请求中包含的数据(包括重复与不重复的数据)都不能存入到Active表中;在勾上c5af6d97-280d-4e81-890a-09a779e2b3fc后,表示不再会检测数据唯一性,此时即使Key Figure关键值字段规则设置成了合并,也并不会将新抽取上来的数据与相同业务主键的数据进行合并(注:即使同一抽取请求中有相同业务主键的记录也不会合并);
注:写优化DSO转换规则的Key Figure的Aggregation虽然可以设置覆盖或合计,但对写优化的DSO是不起任何作用的,不管合并方式设置成什么(MOV、MIN、MAX、SUM),业务键相同的数据也不会发生合并

写优化的DSO只用于只有新增、没有删除与修改的数据的数据源,即抽取的这类数据是不会发生变化的,只会新增(如:由于零售企业的销售明细数据量大并且需要日结,所以零售企业的销售小票明细数据只有增加,对这类的数据可以使用写优化的DSO来做)。并且从数据源中抽数到写优化的DSO所对应的Active表里时,数据不会发生合并计算操作,而是原样将数据源的数据拷贝到表里,所以数据写入的速度也会快点

直接更新Direct Update DSO

在这里插入图片描述

直接更新的DSO不能通过DTP抽数,因为此类型DSO无法创建DTP(也无法创建Transformation),所以该类DSO无法通过ETL来加载数据,只能通过其他Application将数据写到里面,如将某个Query报表查询出来的数据保存到该类DSO中。

直接更新的DSO也只有一张Active表,不过该表不是通过DTP上传数据,而是通过其它方式抽数(非DTP 的Request方式):
在这里插入图片描述
该类DSO所对应的数据库表的主键是由业务字段组成的主键,而不是技术字段(所以数据在写入时,业务主键相同数据也会发生合并计算,这与标准DSO是一样的)
下面演示将某个Query报表结果数据存储到此类型的DSO中

先创建一个Query用作直接更新DSO的数据源:
在这里插入图片描述在这里插入图片描述
通过事务码:RSANWB将Query的数据存储到DSO中:
选择应用,这里会挂到General节点下
在这里插入图片描述在这里插入图片描述
将数据源中的字段与DSO中的数据分配对应起来:
在这里插入图片描述在这里插入图片描述
做好后,再执行即可将Query运行出来的数据存储直接更新类型DSO中:
在这里插入图片描述
原文出自 江正军 技术博客,博客链接:www.cnblogs.com/jiangzhengjun

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值