目的:使用kettle工具实现从动态传参调用HTTP接口获取数据,经过java对数据进行处理,同步到mysql数据库中
步骤示意图如下:
步骤一:生成记录,用于放置url域名
步骤二:JavaScript脚本,用于处理动态url或者参数
动态日期js代码
//Script here
var date = new Date();
var year = date.getFullYear();
var month =(date.getMonth() + 1).toString();
var day = (date.getDate()).toString();
if (month.length == 1) {
month = "0" + month;
}
if (day.length == 1) {
day = "0" + day;
}
var dateTime = year + "-" + month + "-" + day +"T00:00:01";
步骤三:REST client 选择处理好的值uri 填好返回值命名data,http状态为code
如果请求中需要用户名密码访问如下配置
步骤四:JSON输出 获取并解析json返回值
从返回值解析字段值
解析表达式:
$..d.results[*].empId
对应json示例
步骤五:替换null值
步骤六:java脚本,对数据进行处理
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
String id = get(Fields.In,"empId").getString(r);
get(Fields.Out,"empId").setValue(r,id+"test");
putRow(data.outputRowMeta, r);
return true;
}
步骤七:表输出