Kettle5.4调用Redis

本文详细介绍了如何在Kettle中集成Redis,通过具体步骤演示了数据读取过程,并分享了性能测试结果,最后讨论了使用Redis作为字典转换服务的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

Redis作为一个开源免费,高性能的kv数据库,官方称号称能够达到10w+的读写速度;本文讲解Redis如何与kettle结合,看看能够擦出什么火花~~
Redis版本:3.2.100
Kett版本:5.4

1、启动redis-server

redis-server redis.windows.conf

在这里插入图片描述

2、写入测试数据:

使用redis命令行工具写入一条测试数据:

Redis-cli.exe
Set k1 TestRedisGetFunction

在这里插入图片描述

3、添加jedis基础包

默认etl不支持redis调用,需要将jedis-3.1.0.jar包到${etl_root}\lib目录下;

4、新建转换

在这里插入图片描述

5、编写步骤1:生成记录

此步骤用于生成一条提示信息:
在这里插入图片描述

6、编写步骤2:java代码

import redis.clients.jedis.Jedis;
private Jedis jedis=null;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
	if (first){
	  first = false;

	/*connect to redis server*/
	 //连接本地的 Redis 服务
     jedis = new Jedis("localhost");
	logBasic("Connection to server sucessfully");

      //查看服务是否运行
	logBasic("Server is running: "+jedis.ping());
	}

	Object[] r = getRow();

	if (r == null) {
	  setOutputDone();
	  return false;
	}

    r = createOutputRow(r, data.outputRowMeta.size());
	
    String v=jedis.get("k1");
    // Set a value in a new output field
    get(Fields.Out, "k1").setValue(r, v);

	// Send the row on to the next step.
    putRow(data.outputRowMeta, r);

	return true;
}

然后在下面的字段列表中,将值k1输出:
在这里插入图片描述

7、编写步骤3:写日志

为了能够看到输出,将结果输出到日志中:
在这里插入图片描述

8、测试代码执行结果

好了,点击开始执行代码,运行结果如下:
在这里插入图片描述

9、基准性能测试

官方给出的性能在10w+,下面是我在笔记本上的测试结果,平均约为1.7w+,如果在服务器上测试,结果约为这个的2倍性能。
在这里插入图片描述

未完待续

后期计划使用Redis作字典转换服务,减少数据源与目标的数据转换的耦合度。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值