kettle 6.1 通过JS脚本与SwitchCase结合实现数据流选择
Posted 数
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kettle 6.1 通过JS脚本与SwitchCase结合实现数据流选择相关的知识,希望对你有一定的参考价值。
场景:
判断抽取的数据在目标库中是否已经存在(同一个病人是否已经存在治疗方案号):
1.若不存在,则GROUPROWNO=1,并Insert into 目标库 ( 判断外关联字段是否为空 )
2.若已存在(同一个病人是否已经存在治疗方案号) ,则判断更新时间是否相同
2.1若抽取数据的创建时间、修改时间与目标库创建时间、修改时间相同,说明数据完全相同
则执行更新操作或不执行任何操作
2.2若抽取数据的创建时间、修改时间与目标库创建时间、修改时间不相同,说明是同一个方案号的不同版本的数据
则将目标GROUPROWNO+1,并将ORIGINALTREATMENTPLANNO设置为TREATMENTPLAN_NO_ODS,并Insert into 目标库
一、总图
二、外关联,用于判断源端数据是否在目标端存在
三、通过 js 判断空值,并按条件进行赋值
//Script here if (!TREATMENTPLAN_NO_ODS && typeof(TREATMENTPLAN_NO_ODS)!="undefined" && TREATMENTPLAN_NO_ODS!=0 && !INSTITUTIONCODE_ODS && typeof(INSTITUTIONCODE_ODS)!="undefined" && INSTITUTIONCODE_ODS!=0 && !SOCIALSECURITYNO_ODS && typeof(SOCIALSECURITYNO_ODS)!="undefined" && SOCIALSECURITYNO_ODS!=0 ) { var ISORNOTNULL = \'t\'; var GROUPROWNO=GROUPROWNO+1 } else { var ISORNOTNULL = \'f\'; var GROUPROWNO=GROUPROWNO }
四、根据 ISORNOTNULL的值选择目标步骤:
五、判断更新时间是否相同
if (Number(CREATEDTIME_NUM)==Number(CREATEDTIME_NUM_ODS) ) { var ISORNOTEQUQL = \'t\'; } else { var ISORNOTEQUQL = \'f\'; var GROUPROWNO=GROUPROWNO_ODS+1; var TREATMENTPLAN_NO_ODS=TREATMENTPLAN_NO_ODS var ORIGINALTREATMENTPLANNO=TREATMENTPLAN_NO_ODS; }
六、根据ISORNOTEQUAL值,通过SwitchCase进行目标步骤选择
以上是关于kettle 6.1 通过JS脚本与SwitchCase结合实现数据流选择的主要内容,如果未能解决你的问题,请参考以下文章