当前位置: 首页 > article >正文

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


http://www.kler.cn/a/555103.html

相关文章:

  • 【论文技巧】Mermaid VSCode插件制作流程图保存方法
  • [Android] APK提取器(1.3.7)版本
  • 如何组织和管理JavaScript文件:最佳实践与策略
  • 泰山派RK3566移植QT,动鼠标时出现屏幕闪烁
  • #渗透测试#批量漏洞挖掘#畅捷通T+远程命令执行漏洞
  • 使用 Docker 部署 Flask 应用
  • DeepSeek 对低代码产品的影响:机遇、挑战与未来展望
  • css里flex+margin布局
  • 深度探索:DeepSeek与鸿蒙HarmonyOS应用开发的深度融合
  • 家庭相册私有化方案:Docker部署PhotoPrism与跨平台管理指南
  • java实现动态数组(二)
  • 论文阅读笔记:Tree Energy Loss: Towards Sparsely Annotated Semantic Segmentation
  • 10、k8s对外服务之ingress
  • postman传query一个数组类型的参数,并且数组里面只有一个值的时候
  • STM32 物联网智能家居 (六) OLED显示设备
  • 【HarmonyOS NEXT】获取正式应用签名证书的签名信息
  • 【python】网页批量转PDF
  • 基于图扑 HT 可视化技术打造智慧地下采矿可视化方案
  • 【Python爬虫(29)】爬虫数据生命线:质量评估与监控全解
  • Linux高并发服务器开发 第十九天(线程 进程)