精华内容
下载资源
问答
  • DTP药房专题研究报告2021.pdf
  • 中国DTP药房行业报告

    2021-03-25 11:34:00
    产业链上游企业主要分为两类:外资龙头企业与本土大型企业,...罗氏在 DTP 药房合规运营方面给出了操作指 南,使 DTP 药房在为患者提供服务的过程中,能够严格遵守各项法律法规要求,合法合规 经营,促进了中游 DTP
  • 目前,国内DTP 药房觃模仍处于起步阶段,2015 年销售觃模约80 亿,2016 年已超过百亿。我们判断,医药分家后,处斱药流向将以DTP 药房及现存的院边店为主。DTP 药房凭借其专业性优势,经营品种主要以抗肿瘤、丙肝、...
  • DTP

    2020-02-03 13:19:03
    DTP 动态trunk协议 用来协商链路两端的接口类型 默认开启,但不推荐自动协商 关闭自动协商 自动协商的模式

    一、动态trunk协议

    用来协商链路两端的接口类型

    默认开启,但不推荐自动协商

    关闭自动协商

    自动协商的模式

    展开全文
  • 用中间件构造DTP应用

    2020-03-04 08:47:53
    目前的DTP 应用多数是客户/服务器结构,的由客户端处理数据的输入输出和基本预处理,服务端进行具体的数据处理,客户/服务器结构,有利于充分利用主机的处理能力,客户机有自己独立的处理能力,既分担整个系统的部分...
  • DTP3.3.zip

    2020-04-19 16:31:34
    现在这种软件好像已经没有了 很难弄到,适合排版 现在好像有点过时了 不过就当怀念吧! 也不知道现在是不是有更新的版本了 还是已经倒闭了
  • VBA_ 使用DTP控件输入日期.rar
  • Office_DTP日期控件

    2014-11-10 13:26:01
    Office DTP 日期 控件 Excel VB 脚本的好帮手
  • Parasoft DTP 能够实现持续性测试,借助于策略,DTP适用于跨团队和贯穿于软件开发声明周期的各种软件质量实践,文件很大分了6个压缩,这个是 to6 一共6个
  • Parasoft DTP 能够实现持续性测试,借助于策略,DTP适用于跨团队和贯穿于软件开发声明周期的各种软件质量实践
  • dtp-sdk-1.6.0

    2019-01-30 07:02:12
    该资源是服务于java的dtp开发工具扩展包,该版本是1.6.0版本
  • 20201015-头豹研究院-2019年中国DTP药房行业概览.pdf
  • 实验2.4 DTP配置

    2014-03-24 00:07:33
    了解聚集链路协商的类型,掌握交换机接口静态协商和动态协商,掌握DTP配置。
  • Parasoft DTP 能够实现持续性测试,借助于策略,DTP适用于跨团队和贯穿于软件开发声明周期的各种软件质量实践,文件很大分了6个压缩,这个是 to2 一共6个
  • BW4HANA转换与DTP

    2021-09-29 15:51:43
    我想可能是因为就只有一个DTP,它实际上走了两步转换的话,第一个是从数据源到infosource,第二步是从infosource到ADSO,如果转换运行一个是HANA,一个是ABAP,大概DTP不支持这么搞。 1.3 转换规则 1.3.1 allow ...

    其实我觉得这还真的是一个比较有意思的话题。
    在知道了ADSO的各种类型之后,每个类型都有啥区别。其实用的多的也就标准ADSO和Staging ADSO。这个Staging还有compress和不compress的区别。也就是有两张表或一张表的区别。

    那么既然在LSA里面,staging是底层,就是说可以直接fields的ADSO然后1对1往上抽。

    但是呢,在实际应用中,如果你需要这个staging层。最好是搞个带compress的,虽然不从它弄报表。但是你只有有两张表了,才能说在inbound表改数据。不然一张表是改不出来的。而且compress了能少点空间。

    有些公司LSA是搞了staging这一层的,有些公司没有这一层,直接上标准ADSO。上标准的呢,就是如果有数据错误的话,就不太好删,都激活了,删太难了只能搞个selective deletion。如果有个中间层staging来兜底。然后再恢复上层ADSO的数据,还是有些方便的。当然没有也没啥问题。

    这中间会有个我的疑问,就是上层标准ADSO的change log表数据如果被删除了。那么此时如果有的R的记录,X和后象的记录,怎么弄呢?我有这个疑问,其实是我没理解清楚。change log的数据是怎么来的?其实是inbound表和active表对比来的。
    如果你inbound里面没有这条,那么激活的时候,对比了active的数据,会在changelog里面生成一个R。同时删除active的数据。
    如果inbound里面改了。那么还是对比和active的数据,然后去更新到changelog表。和changelog表有没有数据没关系。active这个动作,是先到active表,然后到changelog表的。
    之后从changelog再到其他target的话,所有的更改也是会被捕获的。 没有问题。

    回到转换和DTP上面来。从LSA的角度来讲。
    我们最下层是DataSource。
    数据源会有两种:如果是老的ERP,那就还是标准数据源。如果是S4那么就会有新的CDSview作为数据源。这个CDS view是你在S4那边新建了。然后在BW这边再建一个CDS数据源。就是基于你的SQL view来建一个提取。具体看这里:CDS

    当然不论哪种数据源都是最底层。
    在这里插入图片描述
    那么用infosource主要是为了如果你有很多个datasource数据源。而只在integrated层做一次transformation里面的rule。这样就很方便。那么实际上这样的转换是到infosource,而DTP是在ADSO里面的。
    在这里插入图片描述
    也就是说转换是两层,一层是从数据源到infosource,有N个数据源的转换,一般是1对1没逻辑,第二层是从infosource到ADSO,只有一个。而DTP只在ADSO里面建N个。

    那如果我在datasource和infosource里面插一个staging ADSO,那么数据源一多,这也相当麻烦啊。所以忽略也行。几十个数据源要搞几十个DTP,还得double。那真是没办法搞。
    在DTP里面可以看到,实际上是一个DTP走了两步的转换。如下图,第一步RSDS走了数据源,是直接转换,没啥rule。
    第二步是TRCS是指的infosource,有了start routine和end routine。最后结束更新到了ADSO里面。
    在这里插入图片描述
    前情介绍完毕:

    1.转换

    那么实际操作过程中,转换和DTP里都会有很多个小的属性。如果你不知道怎么去设置。还是挺麻烦的。
    在这里插入图片描述
    简单的来看一般页,转换有两种方式,旧的是ABAP运行。新的是HANA运行(也就是AMDP语法,SQL)那么如果你的旧转换有一些field routine,或者start/end routine啥的使用ABAP语法写的(也就是用类和方法写的)那么就转换不成HANA运行(到数据库底层)。
    这个ABAP运行,上面有两个复选框,默认勾上的那个是反转代码,意思是你有虚拟的infoprovider可以勾这个。如果嫌麻烦不用管。
    那么Rules里面呢,也就是转换的规则。转换的规则有很多:
    在这里插入图片描述
    除了特殊的时间和ODP的recordmode转换,还有一个lookup。这个是啥意思呢?这个就像是Excel的VLOOKUP。
    在这里插入图片描述
    lookup的对象可以是ADSO,也可以是主数据characteristic。这个其实就是外连接表来获取数据。
    情景如下:

    1. 主数据。
      target要求的字段是source字段的属性。那么这个属性就直接从我源里有的字段的属性里面去找就行了。我这个源里的主数据字段就是关键的关联字。
    2. ADSO。
      需要的target字段在ADSO里。
      ADSO的主键和source的字段相同(需要关联ADSO的所有主键),那么我可以连接这些字段去获取我target的存在于ADSO中的字段值。

    1.1 转换中的HANA运行

    前提条件,你的user要有权限。
    你在HANA database里面要写script,那么你得有 privilege:

    1. Privilege Execute on the object GET_PROCEDURE_OBJECTS of the schema SYS
    2. Privilege Execute on the TRUNCATE_PROCEDURE_OBJECTS of the SYS schema
      代码这里要有两个申明:
      第一个是在这个类下面,有个接口:IF_AMDP_MARKER_HDB.
      在这里插入图片描述
      第二个是在方法那里:BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY
      这两个都齐活了,才能是HANA运行,只有第一个不行。这个第二个就是说用的SQL语法了。跟ABAP语法不一样的了。
      在这里插入图片描述
      这个语法就是outab = select * from : intab;
      这个里面就是三个重要的intab , outtab, errortab. 跟原来ABAP里面的result field(字段例程)result package一个意思了。
      这个errortab一般你不选下面这个勾是不出来的:
      在这里插入图片描述
      那勾了的话,代码里就得声明,懒得管就给个空值。如果你勾了但是不声明,那你激活不了这个代码。
      在这里插入图片描述
      或者最后改成FROM “PUBLIC”.“DUMMY”

    1.2 HANA运行时间的ABAP 结束例程

    现在区分ABAP运行和HANA运行就是说它里面的代码语法是ABAP语法还是HANA语法。
    HANA运行时间会把所有的SQL处理下放到HANA数据库层面去处理,这样就会很快。那么ABAP运行实际是在ABAP应用服务器上去处理,没那么快的。
    但是呢,HANA运行处理完逻辑后,还是要返回到ABAP的应用服务器上来的。它说,现在我数据库层面处理完了,你应用层面还有什么要处理的?你去处理吧。
    那么这里就有一个例外了,就是在HANA运行里,可以允许有ABAP语法的结束例程。只有这个结束例程可以哦。
    这个是啥个意思呢?就是说如果你选了HANA运行时,那你还是可以写个ABAP语法的结束例程的。但是如果你同时有开始例程和字段例程,那么这两个得是HANA的SQL语法。等它俩都在HANA数据库处理完了,最后HANA把处理结果给回ABAP应用服务器的时候,还可以再来处理一个ABAP的结束例程。
    这种情况的前提条件是: 下面这个HANA 例程的错误处理就别勾了。要不然搞不起来的。
    因为这个是HANA的逻辑了,你勾了这个,就带了一个HANA的errortab,这个就跟ABAP没办法兼容了。
    还有就是你这个target得是ADSO或者infoobject,得是persist层存数据的。不能是ODS view这种。
    在这里插入图片描述
    如果你勾了,那这个结束例程的ABAP就灰了。
    在这里插入图片描述
    这个时候呢,在HANA下的ABAP例程,就不会有那个第二个声明了:
    只有个这样的结束了。就是说它是不会转换成一个procedure的。
    在这里插入图片描述
    在这里插入图片描述
    就是这个样的了:注释掉用Ctrl+7

    METHOD GLOBAL_END.
    
         FIELD-SYMBOLS:
           <RESULT_FIELDS>    TYPE _ty_s_TG_1.
    
      DATA: MONITOR_REC     TYPE rstmonitor.
      
    loop at result_package assigning <result_fields>.
    <result_fields>-* = *.
    endloop.
    

    在这里有一点稍微要注意的是,如果你的两层转换,就是中间有一个是infosource的,一个是HANA一个是ABAP,好像会报错还是啥的。所以一般都是给弄成一致的。
    我想可能是因为就只有一个DTP,它实际上走了两步转换的话,第一个是从数据源到infosource,第二步是从infosource到ADSO,如果转换运行一个是HANA,一个是ABAP,大概DTP不支持这么搞。

    1.3 转换规则

    在这里插入图片描述

    1.3.1 allow currency and unit conversion

    这是啥意思呢?就是说允许你的货币和单位转换。一般呢,我们可以在field routine里面做转换的。写代码。
    但是你也可以这样搞转换。
    前提条件是,你的这个计量值得是在target里面1. 是infoobject,2. 是key
    一般好像不这么搞,我没见过把计量值当成key的。我具体也没操作过。

    1.3.2 check units for consistency

    这个就是检查单位的一致性。去T006表主数据检查,如果你这个record的单位不在人家主数据表里,就数据一致性就不行。就不会给你加这条数据的,会报错的。一般也不选。

    1.3.3 allow error handling for HANA routines

    这个是在HANA routine里面的,给你个error_tab,要写代码进行处理。

    1.3.4 create inverse routine for abap routines

    这个也是有个单独的地方,在inverse下面你要写routine的。但是这个如果是空的也没事。具体这个反转代码,我还真没用过。HANA routine 里面没这个。
    我查了下解释,是说这个用于virtual provider。为了性能提升,来建这个反转routine。就是把这个在导航步骤(应该说是在query里面的查询步骤)里的查询条件直接转换成提取器的查询条件。在report-report接口,你得用这个。。。我尽力了。。。

    1.3.5 initialization of fields containing NULL values for SAP HANA Routines

    这个也是在HANA routine里面的。就是源如果来了NULL值,到HANA这里就不接受。如果到了target还是NULL,HANA就说不行,我不允许。
    那么你点了这个选项,他会把NULL给转换掉,如果char类型,那就是blank,如果numeric类型,那就0. 那就如果你搞了HANA routine,不嫌累的,那就点上这个吧

    ***1.3.6 ABAP runtime & HANA runtime

    在这里插入图片描述
    就是说HANA routine有更好的处理大量数据的能力,它快。搞到内存里去计算了。
    但是对于ODP 源系统,还是用ABAP runtime吧。因为它这个提取就是用的ABAP,你用个HANA的转换是徒劳,HANA的得是一开始给它弄到persist层去,让它去数据库处理才好。
    对于ABAP runtime和HANA runtime有一个区别点,就是ABAP runtime会自动给你处理一些数据类型转换,char类型的数据如果有数字会自动给你转成integer类型。但是在HANA里面,就会有个runtime error了。所以你得在formula或者HANA 的script里面去给他转换类型。
    第二个不同点就是,round。ABAP会自动四舍五入,HANA不会。
    如果你的DEC有三位小数,那么2/3 在ABAP里面是0.667,在HANA里面就是0.666
    你得自己搞公式去给他限定。
    TO_DECIMAL(ROUND(TO_DOUBLE(AMOUNT)/TO_DOUBLE(/BIC/SZDEC02);3;“);17;3)

    虽然说HANA runtime通过创建一个数据库存储结构,一个列视图来搞到数据库去计算快了很多。但是它不能完全来替代ABAP runtime。有些function module啊,一些ABAP对象啊,还得用ABAP runtime来搞,你要去替换那些ABAP代码,太复杂了啊。
    所以这个HANA runtime到底怎么用,什么情景下用,还是得靠功力来看。从我的理解来看呢,最好LSA的底层不要用HANA runtime 了。都是ODP数据源啥的,没必要。往上层A-P层,那大家都是ADSO了,都实在的存数了,那就就用用吧。
    对于那种用了HANA runtime的,SAP推荐你在转换里面用一些lookup,就是说你用read master data或者read from datastore object,能不用code写就不用code写。这对性能提升很有帮助。

    对于在HANA runtime的end routine里面写ABAP代码,这个有个前提条件,是你的target是persist的对象,得是ADSO啥的。不能是ODS view。

    1.3.7 rule group

    在这里插入图片描述
    就是一组准换规则。一个转换可以包含很多rule group。
    在这里插入图片描述
    一般情况下我们有标准规则组和技术规则组。你如果要一条source多条target,就建一个rule group。像hierarchy里面的rule group一样。

    还有一个extraction grouped by,这个是在转换里面把record按照你给的字段来分组。这个是和以前DTP的sementic key一样。
    主要用来:1. 分组 2.error stack处理。
    这两处都有。都有的时候,系统来处理是个combine.
    在这里插入图片描述

    2.DTP

    如果要debug你这个转换里面的例程。
    先打个断点,小蓝点。
    ![](https://img-blog.csdnimg.cn/843afcc5b738485eb78cea9ea90be4ef.png)
    然后在DTP里面,如果想先测试,不传数据,那就先模拟:
    在这里插入图片描述
    如果要针对特定的一些record,选export mode来做过滤:
    在这里插入图片描述
    下一篇:debug.

    在DTP里面也有一些选项。那都是什么意思呢?
    在这里插入图片描述

    1. 提取模式:全量或增量。增量中,右侧有请求的不同场景的执行方式。
      Perform delta initialization without data: 目标已经有了这个数据了。那么已经有了的request ID就不会被再次抽取。
      Only get delta once: 原本增量数据源只能被target抽取一次。我不太懂这个啥用。
    2. 处理模式:就是抽取,转换和传输的步骤。转换中的运行时间HANA runtime和ABAP runtime会影响到这个处理模式。下面就是一些技术状态。
      在这里插入图片描述
      Key date呢是如果你主数据比如层级是时间相关的,那么提取的时候只提有效时间的数据。这个DTP的例子是从ADSO来的。
      如果直接从数据源就会简单点没这些。
      抽取可以从热、冷两个地方数据库来。取决于你ADSO的温度划分,你如果要archive的数据,那么就所有的都要。
      还有个suppress database aggregation,这个默认给你勾上,啥意思呢?就是如果你勾了,那么key figure会先聚集,然后执行你的那些转换逻辑。如果你不勾,那就是先每个record执行你的转换逻辑,然后激活的时候会再给你聚集。
      在这里插入图片描述
      还可以加过滤值,或者分组。分组的语义最后可以用于错误堆栈分析。
      在这里插入图片描述
      在更新的时候,如果触发数据库合并就是说的HANA列存储的Main storage和delta storage的合并。如果不勾,在处理链中也能弄。
      更多主数据的处理呢,也就是参照完整性。不勾。让那些SID表没有的也能更新进去。
      错误处理:你这个是HANA或者ABAP的可以有error 处理。如果是HANA runtime有个ABAP endroutine的,那错误处理不起来。
      请求的处理有三个选项:
      在这里插入图片描述
      要想处理错误数据,选第二个。
      下面还有个追踪失败请求。HANA runtime不是默认启动的。ABAP runtime时,在处理链失败后重新执行,再次失败会跟你讲你上次record失败了。
      在这里插入图片描述

    最后运行属性。第一个是临时存储。
    是说DTP执行的每一步,都会存一个临时表,这样你可以好debug,而且对于错误的record也可以在这里进行查询。对于错到一半的,从错的地方还可以再次执行。
    启动临时存储,可以在properties里面看到program flow。具体有DTP每一个执行步骤。

    那么当你去处理错误请求的时候,就是在error handling下面选填入错误堆栈。然后你要再生成一个error DTP。
    这个error DTP会把你错误堆栈里面的记录(修复好了以后)更新到目标。
    在哪里修复?在那个右边的DTIS里面。就像inbound表一样。
    在这里插入图片描述
    等修好了,把前一个DTP的状态改成OK。然后再执行一下这个新DTP。就可以了。

    2.1 DTP的delta机制设置

    这个算是插播。
    在Extraction Mode里面:
    Delta的第一次是初始化抽取所有历史数据,第一次以后就是抽取上次没被这个DTP抽过的。
    在这里插入图片描述
    Full就是全部抽。只能是说数据是覆盖型的。那可以full。而且也可以是如果你的delta是分语义层的。那么错的那条有filter的语义可以用这个full来修复。

    *only get delta once:只抽一次。下次就不抽了。那万一下次这条还有更改呢?如果这个数据说出错了,我想在target里面删掉,然后再重新抽一次呢?
    这种情况就是源如果有数据被删掉,它不会有R,也不会有D。它没办法告诉目标。那我目标就只能自己来删了。一般情况不用。我觉得这个可能是用来替代巨量数据无法用Full的情况。
    *parallel processing: 并行处理。提取和处理多个包。默认使用。但是如果说数据的一致性与记录的顺序特别相关,那就不太好用了。那就一个串行吧。
    *perform delta initialization without data: 就上次你抽过了。这次那就不用抽数了,就告诉它,我抽过了,别重复给了。很少用。
    然而根据实际应用来看呢,勾上这个的话,好像只是对已经抽取过的delta数据有了限制,如果有新的数据,还是会抽过来的。也就是跟它的前提Delta不冲突。我感觉,这个只对第一次初始化有限制。对之后的数据影响呢也就是只抽新的:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    数据源给的条目数,最后就是它抽取的条目数。
    Delta增量机制是保证了从上次抽取之后到这次抽取之间的所有数据都会被抽取。当数据源的增量数据被Delta DTP给抽取了之后,那增量数据在queue里面默认24小时后(成功被提取)就会被删除(这个保留时间可以在ODQMON里面去做更改)。
    如果是BW那边的DTP请求出错,那么就要删除last request(把请求设置成error)。然后再执行一遍Delta DTP去拉queue里面的数据。毕竟源那边是不会再给你一遍增量数据的。

    所以说有时候你在infoprovider里面删除请求的时候,要想清楚,你删了这个数据,那么delta请求没办法再从delta queue取数据过来了。你得把这个infoprovider的所有DTP的 delta 请求删除掉,然后再弄一个新的delta初始化来搞数据了。

    如果你这个Delta DTP实际上已经不跑了。那么你在delta queue那边可以就把这个subscriber删掉了。

    展开全文
  • 讲到DTP的语义组呢,就得讲到DTP抽数的种种。 咱知道DTP是管抽数的,提取模式,更新模式。转换是管抽数规则的,数据的映射和更新的逻辑。 那么,DTP抽数的时候咋抽呢?数据源的表都那么大,一条一条的数据。 文章...

    与一组,对这个我打字的时候自己出来的。
    你在语义组里选的字段,抽数据的时候都是与你选的字段一组的。
    在这里插入图片描述
    讲到DTP的语义组呢,就得讲到DTP抽数的种种。

    咱知道DTP是管抽数的,提取模式,更新模式。转换是管抽数规则的,数据的映射和更新的逻辑。

    那么,DTP抽数的时候咋抽呢?数据源的表都那么大,一条一条的数据。

    DTP是如何抽数的

    DTP主要用来把数据从一个源抽到一个目标。
    除了知道这个,还得知道万一抽数出错了,它还有处理机制的。这就涉及到了,临时存储空间,语义键,和错误堆栈。

    抽数方式-增量和全量

    最简单且重要的概念,就是咱得知道,它抽数的方式。
    全量很好理解,就是你有啥,我都要。(暂时忽略我的过滤器)
    全量一般用来抽主数据,就是InfoObjects. 还有抽直接更新的DSO。
    在这里插入图片描述
    增量呢,这里就有需要考虑的一点。如果你是第一次抽取,那下面的选项就是增量初始化。跟全量一样的,把之前的所有的请求都抽取过来。
    然后之后,就是下面的选项要选了。参考这篇DTP.
    在这里插入图片描述
    这里再补充以下
    Get all new data request by request
    如果你选这个,会同时有一个Retrive until no more new data.当你选完激活,这个retrieve 啥的就消失了。

    这个就是你从源抽取一个请求的数据,结束后,DTP再检查有没有新请求。如果有新请求,那就再生成一个DTP请求。
    如果你不选Retrive until no more new data,那这个选项就会变成:get one request only。

    这里我有个疑惑的点:为啥从源那里是按请求来抽数的呢。请求怎么理解?

    only get delta once。之前我说这不是跟Full一样么,其实不一样的点在于,这个的应用场景在于。永远只取最新的数据。
    那旧的怎么办呢?
    旧的已经存在在目标里的请求,在你选了这个更新方式之后,会先删除掉所有的数据。然后一次性更新最新的。
    也就是假设你每年从文本文件更新你们的桌椅电脑状况。那你肯定是只需要最新的。这个最新的更新有了,你之前的就肯定不要了。
    如果你用Full,那有可能会有重复的。
    这时最好选择Only get delta once.
    你把它分解为两步:第一,删除掉目标的数据,第二,全量抽取。

    不过我看现在的Full,下面也有个小框框可以勾了,看上面那个Full的截图,下面有个请求选择:only retrieve last request.
    也许以后delta下面就没有这个only get delta once了。

    增量抽取到Open Hub

    这里的话,由于我们从DTP抽取到其他的数据目标去。一般源是DSO,从DSO抽取到Open Hub。
    其实会有
    在这里插入图片描述
    会有选项说数据从哪里抽出去:
    直接从online database就是从激活表出去,下面有从激活表和归档表。那么一般在归档表和近线存储的数据都会被抽取。最后一个就是说只从归档表抽取,不要激活表的数据。

    注意,不是从change log表出了。我也不知道在哪里看到从changelog表到OpenHub.

    过滤器

    这个在这里有点解释:DTP Filter

    更新模式

    抽取完了之后,就是更新。这里要看的是抽数错了咋整。这个在全量抽取和增量抽取下,都是一样的错误处理。
    在这里插入图片描述
    第一个,错了就错了,直接终止请求,不抽了,错了也别告诉我。就像别人请你帮忙,你没太放心上,做也是会做的,就是做不做得成那不管了,也不知会别人一下。这太不负责任了吧。
    其实这是为了防止性能变慢,你这个抽数,我每天都给你抽,而且你本身没太紧要的。那就别占进程占分析了。我们的目标是faster。。。

    第二个,追踪第一条出错的记录,减少处理时间。

    第三个,状态变红,出错的记录会被写入单独的错误堆栈。在这个错误堆栈里你可以手动更新,咋更新呢?下面有:create error DTPs
    就是用这个error DTP来手动更新。
    一部分的valid data已经被更新了,等你修复好了错误的记录,然后把正题状态改成Green。那你就可以往上层抽数,或者激活了。
    在这里插入图片描述
    第四个的不同之处在于,你就是绿色的。你就算不改出错的,也可以使用可用的那部分数据。但是你依然可以在错误堆栈里看到你出错的数据,然后进行修复。

    关于错误堆栈,就是个堆栈,只不过名字叫Error Stack,它其实是用来存放Error的记录的。

    执行

    看下这个全量抽取的处理模式:
    叫序列抽取,直接并行处理
    翻译就是后台处理。

    下面一个序列在对话程序处理。就是debug模式一步一步的。参考这里:Debug DTP
    在这里插入图片描述
    链接只是说对例程的debug。
    不过从整个DTP流程来看,你可以debug模拟任何步骤: extract抽取,data filter数据过滤,转换,错误处理,目标更新。犹如你从水闸抽水到另外一个地方的过程。开始抽水,然而水泵要过滤掉鱼,还要进行水质的净化,如果抽取来的水里面有杂质,要进行错误修复,哪个参数设置的不对了。最后到新的储水点。

    这个debug呢,是你闲来有时间的时候debug的,万一你这数据是实时抽取的,那你就别debug了。
    设置会话断点,就是针对你写代码的地方:
    在这里插入图片描述
    增量抽取的模式下,执行是这个样子的:
    在这里插入图片描述
    还有一个无数据转移,只获取增量状态。就是说我这种情况下的请求只会标注我从源找到数据了。但我不会抽到目标来。

    看完了DTP,让我们回到语义组上来。

    语义组是干嘛的

    在这里插入图片描述
    在抽取下面的filter下面,当你点开语义组,会出现选择错误堆栈的关键字段。很奇怪,因为从我的理解来看,语义组是用来语义分区数据记录的。

    那既然是分区,好像对错误处理也好使。
    语义分区就是说,你如果选了region作为一个语义字段,那你的相同region的记录就会出现在一个package里面。假设你的package是50000,但是在这个里面,有50007条数据属于一个region。最终你的package将会变成50007.不会把你相同region的记录给分到不同的包里。如果你的package足够大,那不同的语义组也会在一个包里。

    那万一你这个region的数据有问题,你可以很快依据出错包找到这个region。怎么找呢?
    这就是语义组用在错误堆栈的实际情况了。

    假设我的DSO中有一条数据是:

    regioncustomernumber
    华中00130

    现在我来更新我的DSO。
    更细的记录中有这么两条:

    regioncustomernumber
    华中00136
    华中00134

    但是呢,第一条36的数值部分出错了,变成36.00了。
    我在没选语义组只选错误堆栈的时候,第一条数据就直接进入错误堆栈了。第二条34的会直接更新。
    当我去修改36之后,然后进行更新,最后的number就会变成36.
    然而这是不对的,因为最新的记录是34.我需要的是34.

    如果我选了语义组,那么以region作为语义组,华中这个region出错了一条,但是所有的这个语义组的记录都会到错误堆栈里,然后我改完了会按照原有的顺序加载,这时候会先更新36,然后更新34.

    但是语义组键的使用还要和DSO的关键字段联系起来。这一切还是要自己尝试。

    除了对于错误记录的处理。
    还有另外的例子就是基于结果总计值来计算新的列。
    比如你需要计算同组用户今年的销售额,根据销售额来发奖金。
    销售额大于10000的发100块奖金。
    销售额大于20000的发500块奖金。

    如果你不按销售组为语义组,那么同一个销售组的销售额出现在不同的包里。
    第一个包里的记录是12000,那你发他们100块。这个在end routine里面写,增加最后一列。
    第二个包里的记录是8500,不发奖金。
    实际上人家一共的销售额是20500,应该发500块。
    这样就不对了。

    最后更新到目标表就是100块。这不就是错了么。

    还有其他应用场景。。。

    一句话概括,语义组就是在数据更新之前对数据进行排序(按照你选定的语义)。这肯定会多花点时间了,把同属于一组的放到一个包里。

    展开全文
  • 是德科技官方资料:工49页。目录:1. 设计和仿真;2.设计优化;3.系统集成和仿真;4.天线测试;5.生产;6.环境测试;7.运行和维护;8.运行和支持
  • 医药商业新模式之DTP药房行业报告(30页),资源名称:医药商业新模式之DTP药房行业报告(30页)医药商业新模式之DTP药房篇.zip...
  • 医药商业新模式之DTP药房篇:专业服务打开零售新市场.pdf
  • 西安达泰 DTP_R增强系列模块产品说明书pdf,西安达泰 DTP_R增强系列模块产品说明书
  • 西安达泰 DTP-S05ci GPRS IP Modem产品手册pdf,西安达泰 DTP-S05ci GPRS IP Modem产品手册
  • 继续上传,我将把自己收藏的众多宝贝逐步奉献给所有喜欢DOS的朋友们,请大家下载收藏。75号是文渊阁 DTP 排版系统 2.60 VM版,好难找啊。
  • DTP协议

    2020-04-09 11:28:33
    DTP (Dynamic Trunk Protocol)动态中继协议 DTP是cisco专有的协议,它只能用于交换机之间建立trunk链路,每隔30s发送DTP帧。 DTP采用协商的方式来决定是否将接口配置为Trunk,在需要使用Trunk链路时...

    本文为方便自己以后复习查看,转发自https://blog.csdn.net/m0_37260961/article/details/70228078

    DTP (Dynamic Trunk Protocol)动态中继协议

    DTP是cisco专有的协议,它只能用于交换机之间建立trunk链路,每隔30s发送DTP帧。
    
    DTP采用协商的方式来决定是否将接口配置为Trunk,在需要使用Trunk链路时,通常是手工静态配置接口模式,并且手工指定Trunk封装协议。
    

    ① 当交换机与交换机的接口相连时,多数都需要配置为Trunk模式;

    ② 交换机连接主机时,都需要配置为access模式;

    为了能够让交换机自动判断什么时候该将接口设置为Trunk,因此开发出了动态Trunk配置协议(Dynamic Trunking Protocol),DTP能够在需要将交换机接口配置为Trunk模式时,自动将接口配置为Trunk,并自动选择Trunk封装协议,默认ISL优先。

    可配置的接口模式有五种

    1、ON

    手工静态配置为Trunk,并且还会向对方主动发起DTP信息,要求对方也工作在Trunk模式,无论对方邻居在什么模式,自己永远工作在Trunk模式。

    2、Desirable

    此模式为DTP主动模式,工作在此模式的接口会主动向对方发起DTP信息,要求对方也工作在Trunk模式,如果对方回复同意工作在Trunk模式,则工作在Trunk模式,如果没有DTP回复,则工作在access模式。

    3、Auto

    此模式为DTP被动模式,工作在此模式的接口不会主动发起DTP信息,只会等待对方主动发起DTP信息,如果收到对方的DTP信息要求工作在Trunk模式,则自己回复对方同意工作在Trunk模式,最后的模式为Trunk,如果DTP被动模式收不到DTP要求工作在Trunk的信息,则工作在access模式。

    4、nonegotiate

    5、access

    在这里插入图片描述
    注意:

    ①开启DTP协商的双方都必须在相同的VTP域内,否则协商不成功。

    ②交换机的型号不同,默认的DTP模式会有所不同,3550默认为desirable模式,3560默认为auto模式。

    ③手工将接口配置成Trunk模式后,可以关闭DTP信息以节省资源

    SW(config-if)#switchportnonegotiate

    ④如果双方都手动配置了Trunk,即使域名不一致,也可以建立Trunk
    ————————————————
    版权声明:本文为CSDN博主「杂粮煎饼不要饼」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/m0_37260961/article/details/70228078

    展开全文
  • 继续上传,我将把自己收藏的众多宝贝逐步奉献给所有喜欢DOS的朋友们,请大家下载收藏。76号是文渊阁 DTP 排版系统 2.70 + PCE 0.2.1,也好难找啊。
  • 思科DTP和VTP协议

    2020-07-24 08:19:24
    DTP • 它的前身是DISL — Dynamic ISL • 它们都是思科私有的协议,用于协商Trunk链路(类型为0X2004的组播 MAC:01-00-0C-CC-CC-CC,每间隔一秒发送一次,形成干道之后间隔30秒发送) • Trunk – ON 默认发送DTP...
  • 本篇涉及的关键词: Customer exit OLAP variable Bex Variable TVARVC 事情是这样的: 我们有很多的client,导致有很多的DTP。而且呢,不同client的DTP,有时候要集中抽数啊。 那这时候,DTP里面的过滤值,多于十个...
  • DTP简介  X/Open DTP(X/Open Distributed Transaction Processing Reference Model) 是X/Open 这个组织定义的一套分布式事务的标准,也就是了定义了规范和API接口,由厂商进行具体的实现  X/Open DTP 定义了三...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,592
精华内容 3,036
关键字:

DTP