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,最终更新到源数据库中。