《DS的经验总结解析.ppt》由会员分享,可在线阅读,更多相关《DS的经验总结解析.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、开发环境测试环境生产环境DSExport.dsx提交/反馈提交提交备份DS的经验总结n开发流程n开发规范n开发经验数据流向及注释1所有的输入数据文件在左侧数据流向及注释2主输入数据文件在左侧从输入数据文件在上方JOB属性说明 JOB属性说明sequential file格式 命名规则- JOB名称n存量以N开头,增量以I开头nCIF层使用Cv,以源文件名结尾nLDF层使用Tr,以目标文件名结尾nLOD层使用Ld,以目标表名结尾n要求目标文件名和目标表名首写字母大写命名规则-控件名称命名规则-落地文件名称CIF层:源文件去掉Exp_,扩展名为.ds如:Exp_InsureVehc_TOther.
2、EXFInsureVehc_TOther.ds Exp_InsureClaimVehc_CPay.EXFInsureClaimVehc_CPay.dsLDF层:首字母为大写的目标表名,扩展名为.dsReject文件的扩展名为.rej如:Agreement_request.ds Agreement_request_001.rej命名规则-连线连线n使用的名字为LKXXn连线上的图标不发生重叠DS的经验总结n开发流程n开发规范n开发经验表定义的必要性n字段名的定义,比如保单号,(polno,plc_no,policyno)使用多个不同的名称造成歧义nnull与not null的不一致,输出文件定义
3、与输入文件定义,造成很多警告信息EXF文件格式-分隔符定义EXF文件格式-列从Table define导入CIF层的处理方法n数字型可以直接赋予目标n日期型可以直接赋予目标n对不需要的列不做映射n由于导入数据中CHAR型的长度不一,在CIF层CHAR型用VARCHAR型代替n第一列若为VARCHAR型,使用col1,len(col)-1n其他字符串列col2,len(col)-2CIF层的处理方法LDF层的处理方法n对日期型或数字型赋空值时,使用函数SetNull() 。n由于rej文件为Sequential_File,对存在Null的列无法落地,需设置文件格式属性Null field val
4、ue。n若列设置为非空,但列中有Null值,不论是否设置Null field value,该行无法落地。Sequential_File数字类型的处理nInteger类型只能读入-21474836482147483647之间的整数nBigInt类型只能读入-92233720368547758089223372036854775807之间的整数nDecimal类型读入的整数与Length设置有关。如当Length=5时,可以读入-9999999999之间的整数。Sequential_File数字类型的处理n当数字字符串中有非法字符时,若非法字符出现在首位,整条纪录被reject,若非法字符出现在中
5、间或结尾,输出该字符左边的数字.n当读取或落地为Null的数据时,需设置Null field value值,否则该条数据被rejectSequential_File日期类型的处理n当字符串与设置的格式不符时,该行数据被reject.n当读取或落地为Null的数据时,需设置Null field value值,否则该条数据被rejectTransformer的处理n对需要计算的多个相似列可使用局部变量Transformer的处理n对Transformer的使用尽量少,做到尽量合并,以提高job运行效率。n对于字符型字段,长度为零的字符串不等于NULL值;但导入数据库时会将该字符串认为是NULL。T
6、ransformer的处理n当源字段为Null值时无法做逻辑、数学、字符串运算,否则这条记录被drop掉。n若有多条输出Link,当其中一条Link因为Null值运算时,也会使其他Link上的记录被drop。n为避免被drop发生,可以根据情况使用IsNull(),NullToEmpty()等函数避免。Transformer的处理n增加常整型数据时,若该常量值过大,需使用StringToDecimal进行处理。Transformer的处理n在使用StringToDate时,若格式发生错误,数据会输出若干*符号,不会产生警告信息.n在使用StringToDeciamal时,若源中有非法字符,返回
7、0值.不会产生警告信息.Transformer的处理n当使用条件过滤数据时,对类似if_else的数据输出应该使用Otherwise/Log,而避免两条都使用逻辑判断。Join的处理n对INPUT列按KEY值HASH排序,且键值顺序相同。n对不输出的列事先不做输入。n注意内连接、左连接、右连接、全外连接的区别。Join的处理n在左连接时,为了能准确区分是否连接上从表,在从表端加入伪列常数,通过对该常数的值做判断Change_Capture的处理n对两个具有相同列的数据做比较n可以分别得到两个源文件行数据全相同、行数据部分不同、以及只有一个源存在的行n需要两个源做HASH排序Lookup的处理n
8、对连接字段可否为空必须一致n对没有查找到的数据需Continue处理Sur_Key_Generator的处理n在多个结点运行时,可能产生跳号的现象,为避免这种情况,需做如下设置Remove_Duplicates的处理n输入源需做Hash排序,排序字段顺序与去重字段顺序和个数一致Remove_Duplicates的处理n当排序字段与去重字段个数不一致时,顺序需一致,且控件需设置Option多进程的处理n对Parallel Job,需修改Job参数,选中Allow Multiple Instance多进程的处理n对Sequence Job,需修改Job参数,选中Allow Multiple Instance,此外还需修改控件参数Invocation Id,使调用ID能动态改变相关优化-减少数据量相关优化-减少不需要的列相关优化-先执行减少数据量的操作QuestionThank you