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

相关推荐
飞奔的屎壳郎1 个月前
DM适配连接kettle迁移工具(资源库+数据源配置)
数据库·etl·kettle·dm
zhangjin12221 个月前
Apache Hop从入门到精通 第二课 Apache Hop 核心概念/术语
kettle·apache hop·apache hop 核心概念·apache hop 术语
天地风雷水火山泽2 个月前
二百八十、ClickHouse——用Kettle对DWD层补全的清洗数据进行记录
大数据·clickhouse·kettle
RestCloud3 个月前
如何选择最适合企业的ETL解决方案?
数据仓库·etl·kettle·datax·数据处理·数据集成
isNotNullX3 个月前
一文解析Kettle开源ETL工具!
数据仓库·开源·etl·kettle
isNotNullX4 个月前
一文详解开源ETL工具Kettle!
大数据·数据仓库·etl·kettle
天地风雷水火山泽4 个月前
二百七十二、Kettle——ClickHouse中增量导入数据重复性统计表数据(1天1次)
clickhouse·kettle
天地风雷水火山泽4 个月前
二百七十五、Kettle——ClickHouse增量导入数据补全以及数据修复记录表数据(实时)
clickhouse·kettle
天地风雷水火山泽4 个月前
二百七十三、Kettle——ClickHouse中增量导入数据准确性统计表数据(1天1次)
clickhouse·kettle