kettle从入门到精通 第九十二课 ETL之kettle 使用Kettle的Carte对外发布读写接口

 场景:使用kettle实现将查询结果返回给客户端,也就是说kettle暴露查询接口供外围系统调用。前提必须是使用carte服务才可以提供接口供外部系统调用。具体实操方法如下:

1、设计转换

根据具体需求设计转换,主要用到的步骤有获取变量(从请求参数中获取变量)、json输入(解析入参),json 输出将结果转换为json格式输出到客户端。如下图所示:

2、接收参数

使用获取变量步骤来接收接口请求参数,变量通过${}方法进行获取,如下图${PARAM}则是获取PARAM参数,将参数赋值为req字段。

 

3、解析参数

本示例中的PARAM参数为{"beginDateTime":"2024-02-04 00:00:00","endDateTime":"2025-02-07 23:59:59"},使用json输入步骤解析该参数,分别获取beginDateTime和endDateTime两个参数,如下图所示:

 

 4、选择有效参数

使用字段选择步骤选择我们需要的字段或者修改元数据(如字段类型等),将有小参数传递给后续步骤表输入。如下图所示:

 5、根据参数查询表数据

根据beginDateTime和endDateTime两个参数查询表t1,获取id和name两个字段返回给客户端。

注意:这里sql中的的?是占位符,分别会被beginDateTime和endDateTime两个参数替换,另外从步骤插入数据要选择前置步骤字段选择且勾选执行每一行。

 

6、将结果输出

使用json output 步骤将结果输出,这里主要是需要将发送结果到Servlet进行勾选。然后定义Json条目名称和输出值字段。

 7、设置输出字段

选择我们需要输出的字段,如下图所示:

 8、Spoon 测试 转换

点击运行,输入命名参数PARAM模拟接收外部接口参数,先测试转换可以正常运行,如下图所示:

 

9、postman测试接口

启动carte服务(若对carte服务不了解的参考我前面的文章),使用postman调用/kettle/executeTrans接口,设置rep、trans、level、PARAM参数。

carte有权限控制需设置Auth参数,默认用户名和密码为cluster/cluster

 

 

返回结果中文乱码处理

Windows环境下,返回值会因编码而导致乱码,需要在Kettle的全局配置中添加编码设置,位置 ${KETTLE_HOME}/.kettle/kettle.properties

KETTLE_DEFAULT_SERVLET_ENCODING = UTF-8

 

posted @   慕容尘轩  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示