kettle配置及应用尝试

kettle下载及配置

kettle安装

kettle安装包:百度网盘
提取码:2333

环境配置

要运行软件的可视化界面,需要下载jdk并配置环境变量
(jdk下载请自行百度)
在系统环境变量的CLASSPATH中加入 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
在这里插入图片描述
在系统环境变量中新建JAVAHOME,配置如下:
在这里插入图片描述
在系统环境变量的path中加入
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
在这里插入图片描述

环境配置好后即可解压kettle安装包,直接运行spoon.bat文件即可进入软件可视化界面。

应用尝试

此次尝试实现的应用为“通过百度地图API获取对应地点信息并入库”
教程链接为https://www.cnblogs.com/jieyuefeng/p/6618957.html

数据库连接

新建数据库步骤参考大佬的图片:
在这里插入图片描述
但我此次使用的是mysql数据库,配置图片如下:
在这里插入图片描述

我设置好后点击测试发现报错如下:
在这里插入图片描述
经查找发现是没有相应的连接驱动所致,下载相应驱动的jar包并放入kettle的lib文件夹即可:
在这里插入图片描述
mysql的jar包下载地址:https://dev.mysql.com/downloads/connector/j/
点击右侧:
在这里插入图片描述
在这里插入图片描述
解压后复制“mysql-connector-java-5.1.49-bin.jar”至kettle的lib文件夹中即可。
注意新增驱动后需重启kettle才能生效

应用配置

核心对象建立

本次应用主要用到表输入,HTTP Client,JSON INPUT和表输出
在这里插入图片描述
而后对每个步骤进行配置

1.从数据库读取经纬度

该步骤使用kettle的表输入实现,SQL如下所示:`

select lat, lng, concat(lat,',',lng) as location from locations

​ 注:由于百度地图API需要经纬度在一起的写法,所以构造了location字段
此处由于原博客中没有给出所用的locations表,所以手动添加一条数据
在这里插入图片描述

2.调用百度地图api拿到数据

该步骤使用kettle的HTTP Client实现,配置如下:

URL:http://api.map.baidu.com/reverse_geocoding/v3/?ak=xxxxxxxx&output=json&coordtype=wgs84ll&location=31.225696,121.49884
结果字段名:result

(由于原博客时间较早,百度地图api发生改变,此处已更改为最新的URL)
注:ak参数为百度地图API生成的应用标识,详细文档见http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
​ 增加参数如下:

名称:location
命名参数:location

在这里插入图片描述
在这里插入图片描述

3.解析数据

由于第二步拿到的数据格式为JSON,所以该步骤采用kettle的JSON INPUT实现,其中相关设置如下:

源定义在一个字段里:打钩
从字段获取源:result

并添加如下字段信息:

名称	            路径                                	类型
formatted_address	result.formatted_address	            String
business	        result.business	                        String
district	        result.addressComponent.district	    String
street	            result.addressComponent.street	        String
street_number	    result.addressComponent.street_number	String
distance	        result.addressComponent.distance	    String

在这里插入图片描述

4.结果入库

该步骤使用kettle的表输出完成,配置如下:

目标表:locations_result

数据库字段为:

表字段	          流字段
lat	              lat
lng	              lng
address	          formatted_address
business          business
district          district
street	          street
street_number	  street_number
distance	      distance

在这里插入图片描述

数据表结构

CREATE TABLE `locations` (
  `lat` float DEFAULT NULL,
  `lng` float DEFAULT NULL,
  `text` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `locations_result` (
  `lat` float NOT NULL,
  `lng` float DEFAULT NULL,
  `address` varchar(100) DEFAULT NULL,
  `business` varchar(100) DEFAULT NULL,
  `district` varchar(10) DEFAULT NULL,
  `street` varchar(50) DEFAULT NULL,
  `street_number` varchar(50) DEFAULT NULL,
  `distance` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

调用百度地图API时的AK获取

在百度地图开放平台按照流程进行申请
百度地图开放平台
在这里插入图片描述

执行结果

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值