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

相关推荐
敲敲敲-敲代码6 小时前
【Kettle安装】Kettle安装过程, 电脑已安装java23,安装Kettle 出现报错:尝试启动 Java 虚拟机(JVM)时失败解决方法
java·kettle
遇码7 天前
阿里开源的免费数据集成工具——DataX
大数据·开源·kettle·datax·数据集成·flinkcdc·seatunnel
飞奔的屎壳郎2 个月前
DM适配连接kettle迁移工具(资源库+数据源配置)
数据库·etl·kettle·dm
zhangjin12223 个月前
Apache Hop从入门到精通 第二课 Apache Hop 核心概念/术语
kettle·apache hop·apache hop 核心概念·apache hop 术语
天地风雷水火山泽3 个月前
二百八十、ClickHouse——用Kettle对DWD层补全的清洗数据进行记录
大数据·clickhouse·kettle
RestCloud4 个月前
如何选择最适合企业的ETL解决方案?
数据仓库·etl·kettle·datax·数据处理·数据集成
isNotNullX4 个月前
一文解析Kettle开源ETL工具!
数据仓库·开源·etl·kettle
isNotNullX5 个月前
一文详解开源ETL工具Kettle!
大数据·数据仓库·etl·kettle
天地风雷水火山泽5 个月前
二百七十二、Kettle——ClickHouse中增量导入数据重复性统计表数据(1天1次)
clickhouse·kettle