DS开发经验总结.doc_第1页
DS开发经验总结.doc_第2页
DS开发经验总结.doc_第3页
DS开发经验总结.doc_第4页
DS开发经验总结.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DS开发经验总结 DS开发经验总结目录 1、特定控件在DataStage的Job中会使用到各种各样的Stage,在本文档中针对一些常用的Stage制定出一些使用原则以使Job更易读,也可以避免一些不必要的错误。 1. 1、Aggregator(简称AGG)1,方式StagePropertiesOptionsMethod=Sort此处统一选择sort方式2,排序分区按group by字段进行分区排序。 字段顺序与之前分组字段一致。 特别注意Group by字段不能为空,保险起见,在AGG之前要对NULL值进行处理或者赋值NA等,防止出现结果重复值等情况的发生。 3,清除分区需要考虑是否清除此次分区。 如果临近的下一个Stage,以同样字段分区,此处没必要清除分区。 4,关于计算数值之后,字段类型变化计算之后字段类型默认为double类型,大致有以下几种情况以及相应解决方法 (1)计算字段类型为decimal类型先添加”Sum OutputColumn”属性”Decimal Output”,再填写需要输出的字段类型,然后Output拖出该计算列; (2)计算字段类型为数值类型,譬如Integer无法直接修改类型,需要在该Stage之后修改回相应数值类型,否则报错; (3)计算字段类型为日期类型,譬如Date先添加”Column forCalculation”属性”Preserve Type”,再选择True,然后Output拖出该计算列; (4)以上 (1) (3)Aggregation Type=Calculation,默认输出计算列Nullable均为YES。 当Aggregation Type=CountRows,只用于做计数,默认输出计算列Nullable为NO。 对于输出字段的Nullable求count可将字段输出直接改为NO;求SUM的话对于NULL值可以NULLTOZERO。 5,StagePropertiesOptionsAllow NullOutput该选项默认是False,若数据有NULL数据,该选项选为True,否则为NULL的数据被Drop掉,并且不报警告。 1. 2、Lookup(简称LKP)1,不建议使用:建议关联的表是小表的时候再使用该控件。 我们通常会用Lookup Stage做有关数据的匹配查找工作,对于Lookup的Reference Link,由于其是将数据放到内存中,当其数据量较大时(超过内存大小),用Join Stage的内连接来实现相同的功能。 排序过的源数据会减少Join Stage的处理时间2,condition中condition notmet选fail(默认),lookup failure选continue.1. 3、Funnel(简称FNL)StagePropertiesOptions中1,Funnel Type=Continuous Funnel,该选项为默认选项。 建议该设置选择该默认选项。 2,Funnel Type=Sequence,该选项只适合2条input时使用,输入较多时数据有可能不正确。 建议选择第一种。 1.4Remove_Duplicates使用去重Stage时,在Advanced下的Execution mode设置成Sequential,确保去重成功1.5Join在使用Join Stage时,在InputPartitioningPartition type最好使用Hash对关联字段进行分区,以免关联不上并且在StageAdvancedPreserve partitioning设置成clear1.6ABAP_EXE_for_R3Stage关于使用ABAP_EXE_for_R3Stage需要注意的1.按照规范,Description中需要大致描述以下信息该信息也会被作为ABAP的一部分上传至SAP点击OuputABAP Program点击Options会弹出下面窗口2.每个ABAP的名字不能相同,以免会被覆盖点击OuputABAP Program在ABAP ProgramID中输入名字1. 7、文件的使用1.7. 1、DateSet(简称DS)生成PLF文件,速度较快。 1.7. 2、Sequential File(简称SQ)生成EXF和LDF文件,是实际存在的落地文件。 如没有特殊情况,则 (1)InputPropertiesOptions选项设置如下 (2)InputFormat属性中选项应该如下 (3)相应该文件做为输出的时候,以上相应选项、字段等要一致。 (4)一般情况下,我们在这个控件中对NULL的处理是将Null fieldvalue设置为”,这样会产生这样一个问题当某一个字段的属性允许为NULL,并且其中有值为时,从Sequential File落地文件中读取数据时,这一字段的值将会变成NULL。 所以在用落地文件Sequential File对NULL进行处理时需慎重。 1. 8、DB2API1,用DB2API控件从数据源读取数据时,建议使用用户自定义SQL,以防止读取失败。 2,从开发效率考虑,可以将部分SQL(譬如多表关联取其中字段)放入自定义SQL中执行。 3,部分用DB2API控件来加载数据的时候(包括insert/update)禁止使用Drop tableaction,create tableaction地方选择do notcreate targettable1. 9、Oracle Enterprise1,在Oracle中通过SQL生成的Integer字段先用to_char转换放在字符型字段上,随后再转成Integer,否则有警告.2,去除回车换行符(有中文的字段)replace(replace(colum_name,CHR (13),),CHR (10),)如果是不允许为空的,字段Nullable改为YES对象 (1)针对长度较大的字符型字段,如地址等字段; (2)针对有可能需要关联的关键字段,建议最好之后再trim下。 对于备注字段如果前端界面显示该备注内容,在转回车换行符的时候,建议将其改为特殊字符,最后再将特殊字符转换回来,以不影响界面的美观性。 2、非特定控件2. 1、关于分区清除涉及到的Stage有Aggregator,Join,Remove Duplicates以上这几个Stage在使用时,即使选用默认的分区,也最好clear分区。 2. 2、Runtime columnpropagation选项出现在OutputColumns1,三种级别Project级别,job级别,stage级别(常用)2,使用情况当该Stage中的output列不完全由input列派生出来,有另外新列生成,最好将该选项选中。 3,涉及到的常用Stage有Column Generator,Surrogate KeyGenerator,Transformer,Oracle Enterprise。 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,减少Transformer Stage的使用酌情考虑用其他Stage来代替Transformer Stage,对效率的提高也会有一定的帮助。 如用modify stage做null值的处理及类型转换;用filter stage或者Switch Stage做数据分流等等。 Copy:当只有一个输入及一个输出时最好将Force设置为True,这样可以在Designer里看到运行结束,否则将无法标识运行结束,但不会影响运行结果数据Filter:筛选条件支持标准SQL,但不能进行字符串比较Options中Output RowOnly Once=False如果某一行满足多个筛选条件,是否只输出第一个满足条件的Funnel:Options中合并策略Funnel Type:Continuous Funnel从每一个input link中循环取一条记录Sort Funnel按照Key值排序合并输出Sequence先输出第一个input link的数据,输出完毕后再输出第二个input link的数据,依此类推,直到结束。 (此时可以通过调整link Ordering调整输出顺序)Sort:1,排序升序/降序2,去除重复的数据Option具体说明Allow Duplicates是否去除重复数据。 为False时,只选取一条数据,当Stable Sort为True时,选取第一条数据。 当Sort Unility为UNIX时此选项无效。 Sort Utility选择排序时执行应用程序,可以选择DataStage内建的命令或者Unix的Sort命令。 Output Statistics是否输出排序统计信息到job日志。 Stable Sort是否对数据进行二次。 Create ClusterKey Change Column是否为每条记录创建一个新的字段clusterKeyChange。 当Sort KeyMode为Dont Sort(Previously Sorted)或Dont Sort(Previously Grouped)时,对于第一条记录该字段被设置为1,其余的记录设置为0。

温馨提示

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

评论

0/150

提交评论