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