利用Kettle转储接口数据

摘要:
本文的目的是描述Kettle数据接口的监视、调用和转储。这里将不描述更详细的数据接口内容。项目背景本文旨在提供一种帮助学生掌握Kettle数据接口调用和转储的方法。Kettle的配置方法和组件是多样的,这需要更多的考虑和探索。

1.     项目背景

1.1.  项目背景

数据接口

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

项目背景

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

2.     Kettle配置

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

2.1. Kettle转换的配置

总览

总览

 利用Kettle转储接口数据第1张

校验接口信息

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

 利用Kettle转储接口数据第2张

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的连通性。

 利用Kettle转储接口数据第3张

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

接口信息接入

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

 利用Kettle转储接口数据第4张

利用HTTP客户端解析数据

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

 利用Kettle转储接口数据第5张

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

判断是否获取到数据

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

 利用Kettle转储接口数据第6张

解析JSON串

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

 利用Kettle转储接口数据第7张

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

 利用Kettle转储接口数据第8张

嵌套循环解析JSON串

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

 利用Kettle转储接口数据第9张

利用Kettle转储接口数据第10张

输出数据

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

 利用Kettle转储接口数据第11张

利用Kettle转储接口数据第12张

错误处理

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

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

运行结果

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

 利用Kettle转储接口数据第13张

EXCEL展开如下图:

 利用Kettle转储接口数据第14张

3.     其他

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

3.1.  常见错误信息

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

中文乱码

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

API接口无效

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

免责声明:文章转载自《利用Kettle转储接口数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c#实现冒泡、快速、选择和插入排序算法PE Loader下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

发现TypeScript中同名interface接口会自动合并的特性

今天在学习怎么用TypeScript给jQuery写扩展插件时发现一个很有趣的事情 如上图,VS提示我应该在类C中实现b。 我可以同时定义一个重名的接口,而这个接口内容会自动合并。 这再C#中是绝对不允许的,除非在不同的命名空间中。 但如果我在重名接口中定义相同名称的属性会报重名错误。 也就说并不是js中的后定义的覆盖先前定义的内容。 虽然这些接口信息...

群发技术-使用python3给微信好友群发消息

本文介绍如何给个人微信好友群发消息。 微信个人号中的群发助手可以一次给30个发送消息,如果要给所有所有群发,则需要自己手动发送多次,或者借助程序实现了。本文即是程序实现教程 一、原理 在微信的官方网站上 https://weixin.qq.com/,提供了一个网页版的微信,地址为 https://wx.qq.com/ 登录该网页版微信后,可以在网页上给对方...

ExcelDna项目完整工程演示及讲解

原始链接:http://www.cnblogs.com/Charltsing/p/ExcelDnaDemo.html   ExcelDna工程演示讲课内容 1、ExcelDna是啥? 2、ExcelDna项目的价值 3、什么应用场景需要ExcelDna 4、ExcelDna支持哪些功能 5、ExcelDnaProjectDemo代码讲解 1、 ExcelD...

AWTK 中 LCD 接口的四种实现方式

LCD 接口的四种实现方式 LCD 是对显示设备的抽象,提供了基本的绘图函数。自己去实现 LCD 接口虽然不难,但是需要花费不少功夫,AWTK 提供了几种缺省的实现,利用这些缺省的实现,在移植到新的平台时,一般只需要很少的代码就行了。 下面我们介绍一下几种常见的 LCD 实现方式: 一、基于寄存器实现的 LCD 在低端的嵌入式平台上,内存只有几十 KB...

关于 RESTFUL API 安全认证方式的一些总结

常用认证方式在之前的文章REST API 安全设计指南与使用 AngularJS & NodeJS 实现基于 token 的认证应用两篇文章中,[译]web权限验证方法说明中也详细介绍,一般基于REST API 安全设计常用方式有:HTTP Basic Basic admin:admin Basic YWRtaW46YWRtaW4...

【百度地图API】JS版本的常见问题

【新手必读】API常见问题 1、请问如何将我的店铺标注在百度地图上?我是否可以做区域代理?在百度地图上标注是否免费? 答复: 这里只负责API的技术咨询,不解决任何地图标注问题。在百度地图上标注自己公司,即气泡标注业务。该业务已外包给青岛亿搜,不属于API技术范畴。全国商户的标注需求,请致电:合作伙伴“青岛亿搜网络科技有限公司”咨询。联系电话:0532-6...