DS开发经验总结

上传人:沈*** 文档编号:136064659 上传时间:2022-08-16 格式:DOC 页数:14 大小:271.50KB
收藏 版权申诉 举报 下载
DS开发经验总结_第1页
第1页 / 共14页
DS开发经验总结_第2页
第2页 / 共14页
DS开发经验总结_第3页
第3页 / 共14页
资源描述:

《DS开发经验总结》由会员分享,可在线阅读,更多相关《DS开发经验总结(14页珍藏版)》请在装配图网上搜索。

1、DS开发经验总结目录1、特定控件- 3 -1.1、Aggregator(简称AGG)- 3 -1.2、Lookup(简称LKP)- 5 -1.3、Funnel(简称FNL)- 5 -1.4 Remove_Duplicates- 6 -1.5 Join- 6 -1.6 ABAP_EXE_for_R3 Stage- 7 -1.7、文件的使用:- 9 -1.7.1、DateSet(简称DS)- 9 -1.7.2、Sequential File(简称SQ)- 9 -1.8、DB2 API- 10 -1.9、Oracle Enterprise- 11 -2、非特定控件- 12 -2.1、关于分区清除-

2、12 -2.2、Runtime column propagation选项- 12 -2.3、ETL开发过程中产生的问题- 12 -2.4 关于程序中使用手工文件- 13 -1、特定控件在DataStage的Job中会使用到各种各样的Stage,在本文档中针对一些常用的Stage制定出一些使用原则以使Job更易读,也可以避免一些不必要的错误。1.1、Aggregator(简称AGG)1, 方式:Stage-Properties-Options-Method=Sort此处统一选择sort方式2, 排序分区:按group by字段进行分区排序。字段顺序与之前分组字段一致。特别注意:Group by

3、字段不能为空,保险起见,在AGG之前要对NULL值进行处理或者赋值NA等,防止出现结果重复值等情况的发生。3, 清除分区:需要考虑是否清除此次分区。如果临近的下一个Stage,以同样字段分区,此处没必要清除分区。4, 关于计算数值之后,字段类型变化:计算之后字段类型默认为double类型,大致有以下几种情况以及相应解决方法:(1) 计算字段类型为decimal类型:先添加”Sum Output Column”属性”Decimal Output”,再填写需要输出的字段类型,然后Output拖出该计算列;(2) 计算字段类型为数值类型,譬如Integer:无法直接修改类型,需要在该Stage之后修

4、改回相应数值类型,否则报错;(3) 计算字段类型为日期类型,譬如Date:先添加”Column for Calculation”属性”Preserve Type”,再选择True,然后Output拖出该计算列;(4) 以上(1)(3):Aggregation Type=Calculation,默认输出计算列Nullable均为YES。当Aggregation Type=CountRows,只用于做计数,默认输出计算列Nullable为NO。对于输出字段的Nullable:求count可将字段输出直接改为NO;求SUM的话对于NULL值可以NULLTOZERO。5, Stage-Properti

5、es-Options-Allow Null Output:该选项默认是False,若数据有NULL数据,该选项选为True,否则为NULL的数据被Drop掉,并且不报警告。1.2、Lookup(简称LKP)1,不建议使用:建议关联的表是小表的时候再使用该控件。我们通常会用Lookup Stage做有关数据的匹配查找工作,对于Lookup的Reference Link,由于其是将数据放到内存中,当其数据量较大时(超过内存大小),用Join Stage的内连接来实现相同的功能。排序过的源数据会减少Join Stage的处理时间2,condition中:condition not met选fail(

6、默认),lookup failure选continue.1.3、Funnel(简称FNL)Stage-Properties-Options中1,Funnel Type=Continuous Funnel,该选项为默认选项。建议该设置选择该默认选项。2,Funnel Type=Sequence,该选项只适合2条input时使用,输入较多时数据有可能不正确。建议选择第一种。1.4 Remove_Duplicates肖凯增加使用去重Stage时,在Advanced下的Execution mode设置成Sequential,确保去重成功1.5 Join肖凯增加在使用Join Stage时,在Input

7、-Partitioning-Partition type最好使用Hash对关联字段进行分区,以免关联不上并且在Stage-Advanced-Preserve partitioning设置成clear1.6 ABAP_EXE_for_R3 Stage肖凯增加关于使用ABAP_EXE_for_R3 Stage需要注意的1.按照规范,Description中需要大致描述以下信息该信息也会被作为ABAP的一部分上传至SAP点击Ouput-ABAP Program点击Options会弹出下面窗口2.每个ABAP的名字不能相同,以免会被覆盖点击Ouput-ABAP Program在 ABAP Progra

8、m ID中输入名字1.7、文件的使用:1.7.1、DateSet(简称DS):生成PLF文件,速度较快。1.7.2、Sequential File(简称SQ)生成EXF和LDF文件,是实际存在的落地文件。如没有特殊情况,则(1) Input-Properties-Options选项设置如下:(2) Input-Format属性中选项应该如下:(3) 相应该文件做为输出的时候,以上相应选项、字段等要一致。(4) 一般情况下,我们在这个控件中对NULL的处理是将Null field value 设置为”, 这样会产生这样一个问题:当某一个字段的属性允许为NULL,并且其中有值为时,从Sequent

9、ial File落地文件中读取数据时,这一字段的值将会变成NULL。所以在用落地文件Sequential File对NULL进行处理时需慎重。1.8、DB2 API1,用DB2 API控件从数据源读取数据时,建议使用用户自定义SQL,以防止读取失败。2,从开发效率考虑,可以将部分SQL(譬如多表关联取其中字段)放入自定义SQL中执行。3,部分用DB2 API控件来加载数据的时候(包括insert/update):禁止使用Drop table action,create table action地方选择do not create target table1.9、Oracle Enterprise

10、1,在Oracle中通过SQL生成的Integer字段:先用to_char转换放在字符型字段上,随后再转成Integer,否则有警告.2,去除回车换行符(有中文的字段):replace(replace(colum_name,CHR(13),),CHR(10),)如果是不允许为空的,字段Nullable改为YES 对象:(1)针对长度较大的字符型字段,如地址等字段; (2)针对有可能需要关联的关键字段,建议最好之后再trim下。对于备注字段:如果前端界面显示该备注内容,在转回车换行符的时候,建议将其改为特殊字符,最后再将特殊字符转换回来,以不影响界面的美观性。2、非特定控件2.1、关于分区清除涉

11、及到的Stage有Aggregator,Join,Remove Duplicates:以上这几个Stage在使用时,即使选用默认的分区,也最好clear分区。2.2、Runtime column propagation选项出现在Output -Columns -1, 三种级别:Project级别,job级别,stage级别(常用)2, 使用情况:当该Stage中的output列不完全由input列派生出来,有另外新列生成,最好将该选项选中。3, 涉及到的常用Stage有:Column Generator,Surrogate Key Generator,Transformer,Oracle En

12、terprise。2.3、ETL开发过程中产生的问题1, DS中 Transformer里对变量不能使用对NULL处理的相应函数,否则编译报错;2, 两个表之间相关联时对NULL的处理:在DB2数据库中,NULL与NULL之间是不能相关联的,而DS中则正好相反,DS都能关联上。所以在开发过程中遇到关联字段允许为NULL时,一定要把右表的关联字段处理,将为NULL的部分去掉;3, 关于某字段0是否包含NULL值:在DB2中,0中不包含null; 在DS中,有2种情况:在Transformer中0不包含null,但是Director中有警告;在Filter中0包含null ;4,减少Transfo

13、rmer Stage的使用 酌情考虑用其他Stage来代替Transformer Stage,对效率的提高也会有一定的帮助。如用modify stage做null值的处理及类型转换;用filter stage或者Switch Stage做数据分流等等。Copy:当只有一个输入及一个输出时最好将Force设置为True,这样可以在Designer里看到运行结束,否则将无法标识运行结束,但不会影响运行结果数据Filter:筛选条件:支持标准SQL,但不能进行字符串比较Options中Output Row Only Once=False 如果某一行满足多个筛选条件,是否只输出第一个满足条件的Funn

14、el:Options中合并策略Funnel Type:Continuous Funnel:从每一个input link中循环取一条记录Sort Funnel:按照Key值排序合并输出Sequence:先输出第一个input link的数据,输出完毕后再输出第二个input link的数据,依此类推,直到结束。(此时可以通过调整linkOrdering调整输出顺序)Sort:1,排序:升序/降序2,去除重复的数据Option具体说明Allow Duplicates:是否去除重复数据。为False时,只选取一条数据,当Stable Sort为True时,选取第一条数据。当Sort Unility为

15、UNIX时此选项无效。Sort Utility:选择排序时执行应用程序,可以选择DataStage内建的命令或者Unix的Sort命令。Output Statistics:是否输出排序统计信息到job日志。Stable Sort:是否对数据进行二次整理。Create Cluster Key Change Column:是否为每条记录创建一个新的字段:clusterKeyChange。当Sort Key Mode为Dont Sort(Previously Sorted) 或Dont Sort (Previously Grouped)时,对于第一条记录该字段被设置为1,其余的记录设置为0。Create Key Change Column : 是否为每一条记录创建一个新的字段KeyChange。2.4 关于程序中使用手工文件如果程序使用到了手工文件,我们可以使用程序自带的subroutine,来确保程序不会因为缺少手工文件,而出错点击Job Properties 点击General-Before-job subroutine touch一个程序需要的空文件然后在After-job subroutine rm这个空文件- 14 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!