1.     项目背景

1.1.  项目背景

数据接口

API:应用程序接口(Application Program Interface)的简称,是实现计算机软件之间数据通信的工具。同时API也是一种中间件,为各个平台提供数据共享。在大数据与物联网发展的背景下,目前有大量的数据接口被提供或发掘出来,提供给开发者使用,应用到生活中的每一个细节中。本文旨在阐述kettle对于数据接口的监控、调用及其转储,更多详细的数据接口内容不在此具体说明。

项目背景

本文旨在提供一种方法,以帮助同学们掌握Kettle对于数据接口的调用与转储,Kettle的配置方法和组件的使用具有多样性,需要大家多多思考与发掘。

2.     Kettle配置

本文使用的是Kettle 7.0版本,调用的接口为百度开发平台-百度地图API,返回数据集为JSON格式或者XML格式,本次使用了两种方式来存储数据,一种是导出成EXCEL,一种是导出到关系数据库进行存储。

2.1. Kettle转换的配置

总览

总览

校验接口信息

我们首先拿到WebAPI的地址,测试连接的畅通,这里我使用了百度地图的Place Suggestion API,输入城市需要检索的地点,返回建议值,效果如下:

http://api.map.baidu.com/place/v2/suggestion?query=%E6%98%A5%E7%86%99%E8%B7%AF&region=%E6%88%90%E9%83%BD%E5%B8%82&output=json&ak=n0lHarpY3QZx6xXXIaWMFLxj

这里我们测试接口URL的连通性。

这里我的接口是没有校验身份的,只需要输入申请的AK就可以了。测试成功,返回的值为JSON字符串的格式。

接口信息接入

新建一个转换,接口信息接入可以选择EXCEL接入,文本接入,生成记录,或者表输入都行,视自己的情况而定,我这里因为只是测试,选用了生成记录,并且参数值固定死,后期可以使用“${}”将参数替换出来。

利用HTTP客户端解析数据

添加HttpClient组件,我们需要用到它作为客户端来解析API,类似浏览器。

这里的URL地址我们选择从前面的生成记录里面获取。注意字符集的设置,否则后面获取到的接口数据会是乱码。

判断是否获取到数据

这里添加过滤记录组件,用来判断是否成功从HTTP客户端获取到数据

解析JSON串

添加JSON输入组件,这里从流中获取到从API上获取的结果作为源字段。

将JSON串解析成多个字段的形式,具体路径需要自己先在过一下JSON串的格式,提前掌握这些信息。

嵌套循环解析JSON串

我们此次使用的JSON串,实际需要的数据实际是在其内曾的RESULT字段里面嵌套的JSON串里,所以我们需要再对RESULT字段进行解析。

输出数据

我们这里使用了EXCEL输出的方法,EXCEL输出没有特别需要强调的地方,主要需要注意的就是在这里我们只输出需要的内部的地址信息,因为其他字段在流中也会继承下来,这里合理选择输出的字段即可。

错误处理

错误处理一般来说都只是进行记录,或者写入日志,或者写入日志表,或者发送报错信息邮件到管理员邮箱。

这里不做具体讲解,具体的选择方案看项目需求而定。

运行结果

F9可执行改转换,转换没有错误的话则进入上面一条线,并且输出为EXCEL表格。

EXCEL展开如下图:

3.     其他

本附件列出了一些配置过程中可能与遇到的一些问题以及解决方案。

3.1.  常见错误信息

在实验过程中遇到一些错误在所难免,我这里提供了一些容易遇到的错误,给大家参考参考思路。

中文乱码

解决方案:在使用HTTP客户端接入的时候,需要正确选择字符集,一般使用UTF-8是没错的,它能够兼容大部分字符。在进行文本文件输出的时候,需要正确选择输出的格式,尽量不在这一步做编码转换。

API接口无效

解决方案:在解析API接口URL路径时,难免参数会带上中文汉字,这里的汉字需要提前做好转码,这里教大家一个小技巧,使用Chome浏览器,把URL链接粘贴进去,浏览器会自动帮我们把编码进行转换。此时,再把URL地址粘贴出来即可。

利用Kettle转储接口数据的更多相关文章

  1. kettle将Excel数据导入oracle

    导读 Excel数据导入Oracle数据库的方法: 1.使用PL SQL 工具附带的功能,效率比较低 可参考这篇文章的介绍:http://www.2cto.com/database/201212/17 ...

  2. 【百度地图API】建立全国银行位置查询系统(四)——如何利用百度地图的数据生成自己的标注

    原文:[百度地图API]建立全国银行位置查询系统(四)--如何利用百度地图的数据生成自己的标注 摘要: 上一章留个悬念,"如果自己没有地理坐标的数据库,应该怎样制作银行的分布地图呢?&quo ...

  3. 【ALB技术笔记】基于多线程方式的串行通信接口数据接收案例

    基于多线程方式的串行通信接口数据接收案例 广东职业技术技术学院  欧浩源 1.案例背景 在本博客的<[CC2530入门教程-06]CC2530的ADC工作原理与应用>中实现了电压数据采集的 ...

  4. iOS开发之线程组解决请求多个接口数据,完成后,再刷新界面

    1.多任务请求接口,完成后,在刷新数据,常用方法 2018年07月18日 16:34:38 hbblzjy 阅读数:1382 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...

  5. 利用kettle组件导入excel文件到数据库

    利用kettle组件导入excel文件到数据库 1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...

  6. java实现利用httpclient访问接口

    HTTP协议时Internet上使用的很多也很重要的一个协议,越来越多的java应用程序需要通过HTTP协议来访问网络资源. HTTPClient提供的主要功能: 1.实现了所有HTTP的方法(GET ...

  7. 【ALB学习笔记】基于多线程方式的串行通信接口数据接收案例

    基于多线程方式的串行通信接口数据接收案例 广东职业技术技术学院  欧浩源 1.案例背景 在本博客的<[CC2530入门教程-06]CC2530的ADC工作原理与应用>中实现了电压数据采集的 ...

  8. 怎样利用kettle官方社区查找关于carte服务的设置

    原创作品,出自 "深蓝的blog" 博客,转载时请务必注明出处.否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/ar ...

  9. 利用动态图层实现数据的实时显示(arcEngine IDynamiclayer)

    marine 原文利用动态图层实现数据的实时显示(arcEngine IDynamiclayer) 说明:最近一个项目用到这方面知识,文章主要来至网络,后期会加入自己的开发心得.(以下的代码实例中,地 ...

随机推荐

  1. Abbott's Revenge UVA - 816 (输出bfs路径)

    题目链接:https://vjudge.net/problem/UVA-816 题目大意: 有一个最多包含9*9 个交叉点的迷宫.输入起点,离开起点时的朝向和终点,求一条最短路(多解时任意输出 一个即 ...

  2. [转]jquery.pagination.js分页

    本文转自:http://www.cnblogs.com/knowledgesea/archive/2013/01/03/2841554.html 序言 这一款js分页使用起来很爽,自己经常用,做项目时 ...

  3. (转)使用介质设备安装 AIX 以通过 HMC 安装分区

    使用介质设备安装 AIX 以通过 HMC 安装分区 原文:https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72/com.ibm.aix.h ...

  4. Jenkins+Ant+Jmeter接口自动化集成测试

    一.Jmeter+ant 1.首先我们默认Jmeter脚本已经录制好了,并测试通过,存在(查询模块.jmx)脚本 2.将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.j ...

  5. 牛客网Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现

    不多说,直接上干货! 先来看个泛型概念提出的背景的例子. GenericDemo.java package zhouls.bigdata.DataFeatureSelection; import ja ...

  6. windows无法通过installer安装SVN

    1.当你的电脑是windows xp操作系统的时候在安装TortoiseSVN1.8**版本的时候会出现如下问题造成不能完成安装: 出现“无法通过windowsinstaller服务安装此安装程序包. ...

  7. IA-32e模式下的异常处理

    系统异常处理 CPU如果调用系统异常处理程序 需要的数据结构 IDT_Table: 中断向量表, 在中断向量表中的每一项都是一个中断描述符(中断门或者陷阱门), 一个中断描述符中的几位是段选择符 GD ...

  8. mysql+C#

    MySqlParameter[] prams = ]; prams[] = new MySqlParameter("@personindex", personindex); pra ...

  9. webConfig中<customErrors>节点配置

    发布在远程计算机上的网站调试问题: 通常情况下我们会设置错误页,不让用户看到错误信息 这种WebConfig的配置方法是: <configuration> <system.web&g ...

  10. TP5.0搭建restful API 应用

    1.配置环境变量,如果没配置会显示如下错误. 配置方法 1)右键此电脑-> 属性-> 高级系统设置->环境变量->Path 2)在Path后加上php目录的名称 如:E:\PH ...