kettle从入门到精通 第103课 ETL之kettle kettle读取redis中的Hash数据
之前有写过kettle从redis中读取数据的demo,今天咱们一起学习下kettle读取redis中的hash数据。
Redis 中的 Hash 是一个键值对的集合,也可以理解为一个字典,其中每个键(在 Hash 里通常称为字段 field)对应一个值。一个 Redis 的 Hash 可以包含多个字段 - 值对,它的键是唯一的,通过键可以快速定位和操作对应的值。
1、手动设置hash值
本地启动了一个redis的docker单体服务,然后使用redis desktop 客户端往redis中写入hash数据(hash key为xiaojingang,value值是键值对集合),如下图所示:
2、设计流程
本次demo使用到的步骤有生成记录,java代码、json input、写日志四个步骤。
生成记录:驱动流程
java代码:从redis中读取hash数据,循环输出
json input:解析hash集合数据中的每一条记录
写日志:打印出json input输出的字段值
3、Java代码步骤设置
这里重点介绍下Java代码步骤如何读取redis,总共分三个步骤,初始化redis链接、读取hash数据循环输出、销毁redis链接。
1)初始化init 方法
2)读取hash数据循环输出
这里比较重要的一点是需要在for循环中往后续步骤传递数据。
3)销毁redis连接
a、当一个步骤完成了所有的数据处理工作后,就会调用 dispose
方法;
b、步骤执行过程中出现异常,为了避免资源无法正常释放,也会调用 dispose
方法。
c、整个作业或者转换被手动停止或者由于其他原因需要停止时,系统会调用每个步骤的 dispose
方法来释放资源。
4、解析hash集合数据中的每一条记录
这里比较简单,直接从对象中读取相应的字段即可,如下图所示:
5、保存&运行
可以正常工作,done,如下图所示:
写在最后
本demo使用的jedis读取的redis服务中的数据,需要根据redis的版本选择合适的jedis版本,然后将jedis jar包放到kettle的lib目录下面。