声明:原创作品,转载时请注明文章来自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. Android中<meta-data>的使用

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

  2. 浏览器同步测试神器 — BrowserSync

    Browsersync 能让浏览器实时.快速响应文件更改(html.js.css.sass.less等)并自动刷新页面.更重要的是 Browsersync可以同时在PC.平板.手机等设备下进项调试,当 ...

  3. LightOj 1236 - Pairs Forming LCM (分解素因子,LCM )

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1236 题意:给你一个数n,求有多少对(i,  j)满足 LCM(i, j) = n, ...

  4. C语言 ---- 函数 结构体 iOS学习-----细碎知识点总结

    函数的定义     返回值类型 函数名(形式参数列表) {        函数的实现     } 函数不允许嵌套定义 如果函数的定义在主调函数之后,那么要进行提前声明才能使用. // 匿名结构体,结构 ...

  5. Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

    /** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode ri ...

  6. Git diff 常见用法

      Git diff 用于比较两次修改的差异 1.1 比较工作区与暂存区 git diff  比较的是单个仓库的工作区与暂存区的差别,repo diff是对git diff的封装,用来分别显示各个项目 ...

  7. windows服务的创建、安装、调试全过程及引发的后续学习

    前几天做项目的时候需要用到window服务,研究一段时间,算是掌握了最基本的使用方法吧,现总结如下: 引言:在项目过程中碰到一个问题:需要不断的扫描一个大型数据库表,并获取dataset,以便做后续的 ...

  8. lodash的源码(1)

    数组篇 1.compact,就是将数组中的false值去掉 function compact(array) { var index = -1, length = array ? array.lengt ...

  9. Top (参数)

    最近在优化数据库服务器上高消耗语句/过程,发现一个存储过程优化后依旧出现在Profiler跟踪里.将Profiler跟踪文件中过程执行语句取出,打开一个查询窗口(SPID=144),set stati ...

  10. jQuery源代码阅读之二——jQuery静态属性和方法

    一.jQuery.extend/jQuery.fn.extend //可接受的参数类型如下:jQuery.extend([deep],target,object1,[objectN]) jQuery. ...