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,最終更新到源數據庫中。