- 1、本文档共53页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Datatage的经验总结
DS的经验总结 开发流程 开发规范 开发经验 DS的经验总结 开发流程 开发规范 开发经验 数据流向及注释1 数据流向及注释2 JOB属性说明 JOB属性说明 sequential file格式 命名规则- JOB名称 存量以N开头,增量以I开头 CIF层使用Cv,以源文件名结尾 LDF层使用Tr,以目标文件名结尾 LOD层使用Ld,以目标表名结尾 要求目标文件名和目标表名首写字母大写 命名规则-控件名称 命名规则-落地文件名称 命名规则-连线 使用的名字为LKXX 连线上的图标不发生重叠 DS的经验总结 开发流程 开发规范 开发经验 表定义的必要性 字段名的定义,比如保单号,(polno,plc_no,policyno)使用多个不同的名称造成歧义 null与not null的不一致,输出文件定义与输入文件定义,造成很多警告信息 EXF文件格式-分隔符定义 EXF文件格式-列从Table define导入 CIF层的处理方法 数字型可以直接赋予目标 日期型可以直接赋予目标 对不需要的列不做映射 由于导入数据中CHAR型的长度不一,在CIF层CHAR型用VARCHAR型代替 第一列若为VARCHAR型,使用col[1,len(col)-1] 其他字符串列col[2,len(col)-2] CIF层的处理方法 回车(carriage return)与换行(line feed) Unix系统里,每行结尾只有“换行”,即“\n”;Windows系统里面,每行结尾是“换行回车”,即“\n\r”;Mac系统里,每行结尾是“回车”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。 回车(carriage return)与换行(line feed) EXF文件若在windows下编辑,可能会产生多余的回车,在运行时会有警告。可以使用vi编辑器去除该符号,也可通过其他方法去除。 LDF层的处理方法 对日期型或数字型赋空值时,使用函数SetNull() 。 由于rej文件为Sequential_File,对存在Null的列无法落地,需设置文件格式属性‘Null field value’。 若列设置为非空,但列中有Null值,不论是否设置‘Null field value’,该行无法落地。 Sequential_File数字类型的处理 Integer类型只能读入-2147483648~2147483647之间的整数 BigInt类型只能读入-9223372036854775808~9223372036854775807之间的整数 Decimal类型读入的整数与Length设置有关。如当Length=5时,可以读入-99999~99999之间的整数。 Sequential_File数字类型的处理 当数字字符串中有非法字符时,若非法字符出现在首位,整条纪录被reject,若非法字符出现在中间或结尾,输出该字符左边的数字. 当读取或落地为Null的数据时,需设置Null field value值,否则该条数据被reject Sequential_File日期类型的处理 当字符串与设置的格式不符时,该行数据被reject. 当读取或落地为Null的数据时,需设置Null field value值,否则该条数据被reject Transformer的处理 对需要计算的多个相似列可使用局部变量 Transformer的处理 对Transformer的使用尽量少,做到尽量合并,以提高job运行效率。 对于字符型字段,长度为零的字符串不等于NULL值;但导入数据库时会将该字符串认为是NULL。 Transformer的处理 当源字段为Null值时无法做逻辑、数学、字符串运算,否则这条记录被drop掉。 若有多条输出Link,当其中一条Link因为Null值运算时,也会使其他Link上的记录被drop。 为避免被drop发生,可以根据情况使用IsNull(),NullToEmpty()等函数避免。 Transformer的处理 增加常整型数据时,若该常量值过大,需使用StringToDecimal进行处理。 Transformer的处理 在使用StringToDate时,若格式发生错误,数据会输出若干*符号,不会产生警告信息. 在使用StringToDeciamal时,若源中有非法字符,返回0值.不会产生警告信息. Transformer的处理 当使用条件过滤数据时,对类似if_else的数据输出应该使用Otherwise/Log,而避免两条都使用逻辑判断。 Join的处理 对INPUT列按KEY值HASH排序,且键值
文档评论(0)