kettle rest Client控件使用
场景:从数据库updataLevel中获取需要访问的City,通过rest Client获取level,将该level值插入updataLevel中。
环境:win 10 + postgreSQL + kettle + DBeaver(链接数据库)
Http接口:http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E6%B5%B7&&output=json&src=web
1 postgreSQL 数据库设置
创建数据库表updataLevel,并插入测试数据:
create table updataLevel(
id int PRIMARY KEY,
lng decimal,
lat decimal,
city varchar(20),
level varchar(20)
);
insert into updataLevel values(75, 116.332334, 39.882806, '上海');
insert into updataLevel values(80, 116.512885, 39.847469, '北京');
insert into updataLevel values(20, 101.622473, 34.740396, '河南');
表内容如下:

目的:通过HTTP请求获取JSON字段,并填充level。
2 kettle REST Client
整体流程如下:

- 表输入:新建链接,并访问所有数据

- 字段选择:获取选择字段,只保留
city

JavaScript代码:将上级获取的city拼接为完整的url,并获取变量
var url ="http://api.map.baidu.com/geocoder";
url = url+"?address="+encodeURIComponent(city) +"&&output=json&src=web"

4. REST Client:通过GET请求获取JSON字段

5. Json 输入:从字段获取result字段,并设置要获取的字段值


6. 字段选择:获取选择的字段id和level

7. 插入/更新:首先连接好数据库,设置目标表,设置查询关键字和要更新的字段

8. 运行结果

3 更新后的postgreSQL字段

整体思路即获取city字段值,通过该值拼接url,通过REST获取level,最终更新到源数据库中。
本文介绍如何使用Kettle RESTClient控件从postgreSQL数据库获取城市信息,通过HTTP请求调用百度地图API获取城市级别,再将结果更新回数据库。流程包括设置数据库、构建HTTP请求、解析JSON响应及数据更新。

8654

被折叠的 条评论
为什么被折叠?



