博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kettle应用实例
阅读量:6431 次
发布时间:2019-06-23

本文共 1652 字,大约阅读时间需要 5 分钟。

Kettle应用实例

需求

数据库中有很多坐标,需要通过百度地图API取到对应地点的信息,并入库。

步骤描述

  1. 从数据库读取经纬度
  2. 调用百度地图API拿到数据
  3. 解析数据
  4. 结果入库

具体实现

1. 从数据库读取经纬度

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

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

​ 注:由于百度地图API需要经纬度在一起的写法,所以构造了location字段

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

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

URL:http://api.map.baidu.com/geocoder/v2/?output=json&pois=0&ak=xxxxxxxx结果字段名:result

​ 注:ak参数为百度地图API生成的应用标识,详细文档见

​ 增加参数如下:

名称:location命名参数:location

​ 注:名称为第一步结果集的字段名,命名参数为URL参数的参数名

3. 解析数据

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

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

​ 并添加如下字段信息:

名称  路径  类型formatted_address   result.formatted_address    Stringbusiness    result.business Stringdistrict    result.addressComponent.district    Stringstreet  result.addressComponent.street  Stringstreet_number   result.addressComponent.street_number   Stringdistance    result.addressComponent.distance    String

4. 结果入库

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

目标表:locations_result

​ 数据库字段为:

表字段 流字段lat latlng lngaddress formatted_addressbusiness    businessdistrict    districtstreet  streetstreet_number   street_numberdistance    distance

效果预览

o_Geoencoding.png

数据表结构

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;

转载于:https://www.cnblogs.com/jieyuefeng/p/6618957.html

你可能感兴趣的文章
20140616 科技脉搏 -最大颠覆来自创业公司与边缘产业
查看>>
offsetLeft, offsetTop以及postion().left , postion().top有神马区别
查看>>
数据库中触发器before与after认识
查看>>
手动露天广场和立方体
查看>>
随机选择
查看>>
【Java并发编程三】闭锁
查看>>
分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法
查看>>
让你的Git水平更上一层楼的10个小贴士
查看>>
c++ string 之 find_first_not_of 源码
查看>>
mybatis中的#和$的区别
查看>>
ubuntu下搭建NDK环境
查看>>
MessageDigest简单介绍
查看>>
webpack window 使用sass来编译css样式
查看>>
D3 & Data Visualization in Ext JS
查看>>
java通过UUID生成16位唯一订单号
查看>>
001-web基本程序搭建
查看>>
函数指针和指针函数
查看>>
Intel 揭秘:如何在公有云、混合云和私有云间合理放置工作负载
查看>>
借力AI 极验如何构建下一代业务安全?
查看>>
用Python制作迷宫GIF
查看>>