声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4296211.html
  • 标准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中设置中勾选了“”选项,则在Active时抽数请求会报红(其他不报错即不重复的记录也不能存入到Active表时,报错后整个抽数请求所包括的数据都不会插入到激活表里),如果未勾上,则Active时不会报错,并且相同业务主键的数据在Active表进行合并,并在Change Log表中记录数据变化过程;
 
New表中的主键为技术主键:

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

报表就是直接从该表中抽数,以及上层其他数据目标初始化时从该表里抽数,但上层其他数据目标的Detal更新需从Change Log表里抽数
Change Log表中的主键为技术主键:

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

写优化DSO只有一张Active表,数据不需要激活:

数据库表中的主键为:

如果去掉了写优化DSO的”不检测数据唯一性“的勾时,表示数据存入Active表中时会检查数据是否重复,此如果有语义上相同主键的数据时,抽数时抽取请求会报红,整个请求中包含的数据(包括重复与不重复的数据)都不能存入到Active表中;在勾上后,表示不再会检测数据唯一性,此时即使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中:

三种DSO(标准DSO、写优化DSO、直接更新DSO)、标准DSO覆盖合计规则的更多相关文章

  1. C#三种定时器的实现

    http://www.coridc.com/archives/2253.html c#中提供了三种类型的计时器: 1.基于 Windows 的标准计时器(System.Windows.Forms.Ti ...

  2. 【java多线程】多线程的创建三种方式--笔记

    申明:线程的概念以及进程的相关概念,可以参考网络上其他资料,这里只讨论多线程是怎么实现. 一.多线程的简单理解 明白什么是多线程,小生通俗一点的理解为:在一个程序里,我想同时让这个程序完成多个任务. ...

  3. html中css的三种样式

    在html中定义CSS样式的方法有三种,新建CSS文件 使用link 关联 这种是最常用的外部引用样式,第二种讲样式写在 head 头部里面 这种是页面样式 ,第三中样式直接写在行内  style里面 ...

  4. xpath beautiful pyquery三种解析库

    这两天看了一下python常用的三种解析库,写篇随笔,整理一下思路.太菜了,若有错误的地方,欢迎大家随时指正.......(conme on.......) 爬取网页数据一般会经过 获取信息-> ...

  5. 详解Oracle数据货场中三种优化:分区、维度和物化视图

    转 xiewmang 新浪博客 本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,并给出了详细的优化代码,希望对您有所帮助. 我们在做数据库的项目时,对数据货场的 ...

  6. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  7. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  8. 记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案(转)

    问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...

  9. 一次MySQL两千万数据大表的优化过程,三种解决方案

    问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...

随机推荐

  1. php课程---JavaScript与Jquery的区别(转)

    jQuery能大大简化Javascript程序的编写,我最近花时间了解了一下jQuery,把我上手过程中的笔记和大家分享出来,希望对大家有所帮助.要使用jQuery,首先要在HTML代码最前面加上对j ...

  2. 【iCore3 双核心板_FPGA】例程九:状态机实验——状态机使用

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

  3. Cocos2dx淌坑日记:粒子系统PositionType的正确使用

    Cocos2dx中的粒子系统,有三种定位方式,对应于不同需求. 之前我有一个想做的效果,是类似彗星的扫尾.但是当父节点也就是CCLayer跟着物体移动的时候,发现尾巴并没有跟随CCLayer移动,而是 ...

  4. Erlang使用相关笔记

    #从源码编译安装Erlang 1. wget http://www.erlang.org/download/otp_src_r16b.tar.gz -p /usr/local/src 2. tar z ...

  5. Android中<meta-data>的使用

    [转]  原文 在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>.<application> .& ...

  6. PHP多台服务器跨域SESSION共享

    网站业务规模和访问量的逐步发展,原本由单台服务器.单个域名的迷你网站架构已经无法满足发展需要. 此时我们可能会购买更多服务器,并且启用多个二级子域名以频道化的方式,根据业务功能将网站分布部署在独立的服 ...

  7. XAMPP PHP redis 扩展

    1.php增加redis扩展 echo phpinfo();exit;查看php 版本以及 vc运行库 可知 X86 MSVC11  PHP5.6   首先把对应版本的php_redis.dll 和 ...

  8. 采用CSS3的动态元素(动画)设计div块的层级式展现

    此练习作品是为学习HTML5+CSS3而设计的(如有不好请大家批评指教~~~). 操作:当页面加载时,点击网页中的绿色块(一层),则有其他几块(二层)从其中央出现并向外延伸并旋转,点击这几块中任意一个 ...

  9. 将一个query后面的参数转为数组

    function detailUri($params) { $returnParams = array(); if (isset($params)) { $arParams = explode(&qu ...

  10. zabbix的一些优化参数随笔

    StartDBSyncers=12  如果proxy过多 可以适当加大这个参数 ProxyConfigFrequency=60ProxyDataFrequency=60 这两个参数很重要,一个是ser ...