通过kettle发布web服务实现第三方数据注册入库

一、概要

       在实际项目场景中,通常需要通过Web接口接收数据并写入数据库。本文以 Kettle Carte服务 为核心,实现以下功能:

1.通过web接口接收Json字符串数据。
2.通过解析Json并对数据数据转换。
3.将解析转换后的数据写入Postgres数据库。

二、环境准备

1. pdi8.3-data-integration
2. postgres数据库 且已创建对应的数据库表
3. Postman:用于接口请求调用测试
4. Carte服务:Kettle内置的轻量级Web服务

创建表:

CREATE TABLE public.patient_info (
    out_patient_id VARCHAR(20) PRIMARY KEY,
    patient_name VARCHAR(50),
    birth_date DATE,
    sex_code INT,
    id_no VARCHAR(18),
    home_address TEXT,
    medicare_card_no VARCHAR(20),
    source_app VARCHAR(20)
);

三、实现步骤

  1. 编写Kettle转换(.ktr文件)
    1.1 创建转换文件
    打开Kettle → 文件 → 新建 → 转换。

保存为 test_web_insert_patient.ktr。

2 配置输入与参数解析
可通过获取变量组件接收JSON字符串数据,接收 varJson 参数并存储为变量 ${reqJson}。

步骤2:JSON解析
使用 JSON Input 组件解析 varJson,获取字段属性值,并转递到下一组件。
使用 JSON output组件解析 varJson,获取字段属性值,用于请求响应,便于数据注册者判断 数据是否注册成功

3.写入数据库
通过 JSON Input 组件解析 varJson 后,使用 插入/更新组件实现数据的注册落库。
ktr 测试 如图所示:
在这里插入图片描述

四、启动Carte服务

Windows

#进入kettle 安装目录  执行cmd 打开终端
执行 :
Carte.bat 127.0.0.1 8090    

在这里插入图片描述
确认是否启动成功:
在这里插入图片描述

linux

# 进入Kettle安装目录
cd /opt/pentaho/data-integration

# 启动Carte服务
./carte.sh 127.0.0.1 8080

五、Postman接口测试

Carte服务地址:http://127.0.0.1:8090/kettle/executeTrans

1.测试数据:

[{"is_synchronous":"0","out_patient_id":"K05644935","in_patient_id":"","patient_name":"张三","birth_date":"2020-07-06","sex_code":2,"id_no":"421122020706056561","contact_name":"张少","contact_phone":"","nation_name":"","home_address":"上海市","temporary_card_no":"K05644935","medicare_card_no":"K05644935","source_app":"zz_his","source_id":"AW3NG15NY1","source_org_code":"21885100600"}]

2.测试效果:
在这里插入图片描述
在这里插入图片描述
数据落库效果:
在这里插入图片描述

六、常见问题解决

1.如Postman调用提示’The transformation path test_web_insert_patient.ktr is invalid, and will not run successfully’表示 找打不到调用的ktr,确认test_web_insert_patient.ktr文件是否与Carte.bat在同级目录
2.启动Carte.bat服务后,无法打开ETL工具,可编辑修改Spoon.bat端口。
3.Carte.bat服务启动失败,确认端口是否被占用
检查端口是否被占用 : netstat -ano | findstr 8080
终止占用进程(windows):taskkill /PID <进程ID> /F
4.JSON字符串解析失败,检查JSON字符串格式是否存在问题

小结

      本文详细介绍了如何配置Kettle的Carte服务,创建转换文件,处理JSON字符串数据,以及通过Postman进行测试。步骤包括环境准备、编写转换、启动Carte服务、接口测试和数据验证。希望本文的案例在日常项目中能对大家有所帮助,如有疑问请留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目实战哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值