用Kettle调用Restful API 接口

news2024/11/19 18:44:37

1 概述
kettle 中文名称叫水壶,是纯 java 开发,开源的 ETL工具,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面,也有命令脚本还可以二次开发。当然它也可以用来调用Restful API 来采集数据,本文讲述的就是如何用kettle 调用Restful API,采集数据。
2 控件介绍
首先介绍一下本项目中用到的组件:
※生成记录:主要设置一些ETL转换中用到的一些变量及其值。
※REST Client:访问Restful接口的控件。
※JSON input:主要是对JSON格式的数据源进行解析。
※字段选择:选择挑选ETL转换中一些字段,起到过滤的作用。
※生成随机数:生成随机数的控件。
※表输出:表输出控件是向数据库的表中写入数据的控件。
3 主要思路
基于组件REST Client 请求 Restful API ,先访问获取token的Restful API,在得到包含token的结果集后,再用组件JSON input 从中抽取token,然后再用另一个组件REST Client 携带得到的token,访问包含业务数据的Restful API,经组件字段选择过滤后,再经组件表输出,将数据写入目标数据库对应的表。
4 应用场景
在数据ETL过程中,需要调用对方接口来获取数据,并向自己的数据库中插入大量业务数据的场景。
5 准备工作
※建一个数据库,并建一个目标表,表中要包含抽取的字段。
※准备一个postman工具来配合接口测试,验证接口是否能正常调用。
以下为二个测试接口样例:
1) 获取token接口
※ URL: http://...:9080/auth/bizlogin
※ 请求方式:POST
※ 请求参数格式:JSON
※ 请求参数:
{
“username”:“134********”,
“password”:“123456”
}
※ 返回参数格式:JSON
※ 返回参数:
{
“code”:200,
“msg”:null,
“data”:{
“token”:“5092db2c-f126-40bd-b699-bfcc1634d9b6”,
“userid”:12,
“username”:“134********”,
}
}
在这里插入图片描述

2) 业务接口
※ URL: http://...:9080/biz/cocUser/userInfo?userId=12
※ 请求方式:GET
※ 请求参数格式:URL中携带请求参数
※ 请求参数:
userId
※ 返回参数格式:JSON
※ 返回参数:
{
“code”:200,
“msg”:“成功!”,
“data”:{
“userId”:11,
“userName”:“mx”,
“cellphoneNumber”:“134********”,
“email”:“hel**********@126.com”,
“createTime”:“2022-12-25 10:06:55”,
“updateTime”:null,
“auditing”:0,
“status”:0
}
}
如图:

在这里插入图片描述
6 最终页面效果图
在这里插入图片描述
7 操作步骤
7.1 第1步
启动spoon,新建一个转换,拖入1个生成记录,1个REST Client(命名为” REST Client获取token”),1个JSON input(命名为“JSON input_token”),1个字段选择(命名为“字段选择(token)”),再拖入一个REST Client(命名为” REST client(获取业务信息)”),再拖入一个JSON input(命名为“JSON input_userinfo”),再拖入1个字段选择(命名为“字段选择(过滤字段)”),拖入一个生成随机数,再拖入一个表输出,则完成全部控件的拖入。如图所示:
在这里插入图片描述
7.2 第2步
双击组件生成记录,然后填入下面三个参数,即前面的接口访问路径及接口参数:
在这里插入图片描述
如图:
在这里插入图片描述

将生成记录与REST client(获取token)关联,如图:
在这里插入图片描述
7.3 第3步

双击组件REST Client,然后填入下面参数,见下图:
在这里插入图片描述
将REST client(获取token)与JSON input _token关联,如图:
在这里插入图片描述
7.4 第4步

双击JSON input _token,输入如下参数,如图:

在这里插入图片描述
切换到“字段”页面,并填入相应参数,如图:
在这里插入图片描述
将JSON input _token 与字段选择(token)关联,如图:
在这里插入图片描述
7.5 第5步
双击组件字段选择(token),并填入相应参数,如图:

在这里插入图片描述
将字段选择(token)与REST client(获取业务信息)关联,如图:
在这里插入图片描述
7.6 第6步

双击组件REST client(获取业务信息),并填入相应参数,如图:
在这里插入图片描述
切换到Headers页面,输入Authorization 和 token,如图:
在这里插入图片描述
将组件REST client(获取业务信息)与JSON input_userinfo关联,如图:
在这里插入图片描述

7.7 第7步
双击组件JSON input_userinfo,并填入相应参数,如图:
在这里插入图片描述
切换到“字段”页面,并填入相应参数,如图:
在这里插入图片描述
注:如果上面图片看不太清楚,请参考下面例子,路径的输入要正确:
名称:userId 路径:$…data.userId 类型 :integer

将JSON input_userinfo 与字段选择(过滤字段)关联,如图:
在这里插入图片描述
7.8 第8步

双击组件字段选择(过滤字段),并填入相应参数,如图:

在这里插入图片描述
切换到元数据页面,并输入相应参数,如图:
在这里插入图片描述

将字段选择(过滤字段)与生成随机数关联,如图:
在这里插入图片描述
7.9 第9步

双击组件生成随机数,并输入相应参数,如图:
在这里插入图片描述
将组件生成随机数与组件表输出关联,如图:
在这里插入图片描述
7.10 第10步
双击组件表输出,并填入相应参数,如图:
在这里插入图片描述

先勾选“指定数据库字段”,并切换到“数据库字段”页面,点击“获取字段”,编辑或输入相应参数(注:要区分表字段和流字段),如图:

在这里插入图片描述
7.11 第11步
点击运行转换按钮,运行后,各个节点均绿色并打钩状态,如图:
在这里插入图片描述
打开数据库对应的表,发现数据已导入,如图:
在这里插入图片描述
至此,经过上面的11个步骤,完成了kettle对Restful API的调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148918.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造

【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造背景1. IC和半导体产业的全球化2. 芯片生产猜疑链——Untrusted IC Supply Chain Threats可能会存在的安全…

我只是把握好了这3点,1个月后成功拿下大厂offer!

目录 一、写在前面二、技术广度的快速准备三、技术深度的快速准备四、基础功底的快速准备五、下篇预告 一、写在前面 春节过后,即将迎来的是一年一度的金三银四跳槽季。 假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利…

【Shell】mksh运行分析

mksh运行分析 Shell shell,壳子,即操作系统的壳子。这层壳子套在操作系统上,为用户提供与操作系统的交互手段。 操作系统的交互方式一般有,图形化交互(GUI)和命令行交付(CLI,command-line interface)。 套在操作系统上的壳子 …

虚拟机栈

虚拟机栈简介虚拟机栈的出现背景内存中的栈与堆虚拟机栈基本内容虚拟机栈的特点虚拟机栈的异常设置栈内存大小栈的存储单位栈中存储什么?栈运行原理栈帧的内部结构局部变量表认识局部变量表关于Slot的理解Slot代码示例Slot的重复利用静态变量与局部变量的对比补充说…

oracle安装教程

1安装和创建用户 1.1.安装以及常见问题 oracle安装教程 安装中 system密码改成root oracle卸载,除此之外清除C:\Program Files内的oracle 需要准备oracle安装包和plsql界面化操作工具 重装报错bug: plsql操作 plsql注册码 product code: ke4tv8t5jtxz…

java动态代理-面向切面代码样例

1.测试入口import java.lang.reflect.Proxy;/*** 面向切面测试* author epsoft-hy**/ public class test {public static void main(String[] args) {Class<?>[] cls {UserDao.class};//接口一个String classpath"util.aop.UserDaoImp";//访问类路径test2(tes…

【学vue跟玩一样】快速学会常用指令及如何理解生命周期

一&#xff0c;内置指令1.v-textv-bind:&#xff0c;单向绑定解析表达式v-model :双向数据绑定v-for:遍历数组/对象/字符串v-on :绑定事件监听,可简写为v-if :条件渲染(动态控制节点是否存存在)v-else :条件渲染(动态控制节点是否存存在)v-show:条件渲染(动态控制节点是否展示)…

3. Rstudio【可视化导入】数据

b站课程视频链接&#xff1a;https://www.bilibili.com/video/BV19x411X7C6?p1 腾讯课堂(最新&#xff0c;但是要花钱&#xff0c;我花99元买了&#xff0c;感觉不错&#xff09;&#xff1a;https://ke.qq.com/course/3707827#term_id103855009 &nbsp&#xff1b; 本笔记…

SigmaStar空板烧录

一、硬件连接 在官方给的SDK文档中&#xff0c;有描述如何使用ISP TOOL给空板烧录程序&#xff0c;但坑的是&#xff0c;文档中并没有写这个上位机工具需要配合Mstar专门的烧录工具来使用&#xff0c;烧录工具如下图所示。 上图中有三根连接线&#xff0c;示意图如下。目标板的…

HTML与CSS基础(九)—— 综合项目(CSS样式补充、项目前置认知、项目结构搭建)

目标能够在网页中使用 精灵图 能够使用 背景大小属性 &#xff0c;设置背景图片的大小 能够认识 CSS书写顺序&#xff0c;提高代码专业性和浏览器渲染性能 能够使用的专业方式完成 项目结构搭建 和 基础公共样式 能够应用已学技术知识 完成小兔鲜儿项目一、项目样式补充目标&am…

URL中绝对路径与相对路径拼接问题总结

URL中绝对路径与相对路径拼接问题总结1. 基础环境2. 测试2.1 总结2.2 本地文件url1. 基础环境 这里用nginx的docker镜像构建了一个服务&#xff0c;步骤如下&#xff1a; sudo docker pull nginxsudo docker run -d --name nginx01 -p 8083:80 nginx nginx发布的根目录是/us…

Redis安装及常用数据类型介绍

1、redis介绍1.1、redis是一个开源的key-value存储系统1.2、和Memcached类似&#xff0c;它支持存储的value类型相对很多&#xff0c;包括String、list、set、zset以及hash类型。1.3、这些数据类型都支持push/pop、add/remove及取交集并集及更丰富的操作&#xff0c;而且这些操…

LeetCode[264]丑数II

难度&#xff1a;中等题目&#xff1a;给你一个整数 n&#xff0c;请你找出并返回第 n个 丑数 。丑数 就是只包含质因数 2、3和/或 5的正整数。示例 1&#xff1a;输入&#xff1a;n 10输出&#xff1a;12解释&#xff1a;[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组…

【NKOJ三校 初中新年大联欢DIV2】考试游记

目录 看不见的手ljj的方块零它来了宝石转换ljj的距离零它走了彩蛋 题目 【A NKOJ-P8629】 看不见的手 40pts 考试思路&#xff1a; 这道题一看数据范围就知道是O(n)O(n)O(n)的结论题&#xff0c;考试的时候脑子抽筋偏分输出1得了40pts&#xff1b; 正解&#xff1a; 他说…

VISTA -MIT开源基于数据驱动的自动驾驶仿真引擎

引言 VISTA 是MIT开源的一个基于数据驱动的用于自动驾驶感知和控制的仿真引擎。VISTA API提供了一个接口&#xff0c;用于将真实世界的数据集转换为具有dynamic agents、sensor suites、task objectives的虚拟环境。 用过 Unreal Engine 或者 Gazebo的仿真引擎的同学都知道&…

【Kafka】八股文梳理

什么是消息中间件&#xff1f; 消息中间件是基于队列与消息传递技术&#xff0c;在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流&#xff0c;并基于数据通信来进行分布式系统的集成。…

Android Native开发系列之C/C++代码调试

Android Native开发系列之C/C代码调试 引言 在做Android native层开发的时候&#xff0c;需要经常调试C/C代码&#xff0c;相较而言通过打日志的方式太不方便了。有两种方式可以进行底层代码的调试。 利用Android studio自带的Debugger进行调试。利用LLDB VSCode进行代码调试…

SAP灵活工作流条件增强

前置 灵活工作流模板中可以设置条件&#xff0c;用来在场景配置中判断是否启动流程或者是否执行该节点 除了流程模板中设置&#xff0c;也可以通过增强设置更为灵活的条件判断,对应增强点SWF_PROCESS_WORKFLOW_CONDITION 增强实施步骤参考 创建增强点实施 复制示例类 为增强设…

深入聊一聊vue3中的reactive()

在vue3的开发中&#xff0c;reactive是提供实现响应式数据的方法。日常开发这个是使用频率很高的api。这篇文章笔者就来探索其内部运行机制。小白一枚&#xff0c;写得不好请多多见谅。 调试版本为3.2.45 什么是reactive? reactive是Vue3中提供实现响应式数据的方法. 在Vue2中…

【Dash搭建可视化网站】项目9:智能选股器(结合行业、换手率、量比与60日k线图选择目标股票)制作步骤详解

【Dash搭建可视化网站】项目9&#xff1a;智能选股器&#xff08;结合行业、换手率、量比与60日k线图选择目标股票&#xff09;1 项目效果图2 项目架构3 文件介绍和功能完善3.1 assets文件夹介绍3.2 app.py和index.py文件完善3.3 layoutleft.py文件完善3.4 api.py和api.ipynb文…