当前位置: 首页 > news >正文

kettle 使用动态变量名定义变量

name是变量,value 值也是变量

我需要把name作为变量名,value作为变量值;


在kettle中,使用javascript脚本

key与lastVsxzl都是变量

//Script here
setVariable(key,lastVsxzl,'r');var r=getVariable(key,'r');

Demo

1、从记事本里面获取机头号name

2、根据机头号从redis中获取相应的vsxzl值

3、name与vsxzl 成为一个变量,name是变量名,vsxzl是变量值

成功的截图如下


文本文件输入的截图

 

 

获取redis值的截图
import redis.clients.jedis.Jedis;public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {if (first) {first = false;}Object[] r = getRow();if (r == null) {setOutputDone();return false;}r = createOutputRow(r, data.outputRowMeta.size());//1、连接redisJedis jedis = new Jedis("10.20.1.17", 6379);//2、获取key值String name = get(Fields.In, "name").getString(r);boolean exists = jedis.exists(name);//2.1、获取上一次的机米长度String lastVsxzl = "0";if (!exists) {jedis.hset(name, "vsxzl", "0");} else {if (!jedis.hexists(name, "vsxzl")) {jedis.hset(name, "vsxzl", "0");}lastVsxzl = jedis.hget(name, "vsxzl");}//3、输出key值get(Fields.Out, "lastVsxzl").setValue(r, lastVsxzl);get(Fields.Out, "key").setValue(r, name+"vsxzl");// 关闭连接jedis.close();// Send the row on to the next step.putRow(data.outputRowMeta, r);return true;
}

 

Javascript代码

相关文章:

  • 【Linux】多线程——线程概念|进程VS线程|线程控制
  • Linux中本地yum仓库的搭建
  • 深入解析力扣167题:两数之和 II(双指针法详解及模拟面试问答)
  • ehcache3多级缓存应用
  • 简单介绍QKeySequenceEdit的使用
  • 【开源】渔具租赁系统 JAVA+Vue.js+SpringBoot+MySQL
  • MySQL -- SQL笔试题相关
  • 考试题库:华为HCIA-Datacom易错题⑪(含答案解析)
  • 数据处理随机采样前提条件
  • 算法-扫描线
  • 护网红线不能碰,网络安全人员其实也不安全,人才是最大的风险
  • Oracle Hint /*+APPEND*/插入性能总结
  • 在PostGIS中检查孤线(Find isolated lines in PostGIS)
  • 使用PNP管控制MCU是否需要复位
  • Bytebase 2.18.0 - 支持创建用户组
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【mysql】环境安装、服务启动、密码设置
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 11111111
  • 230. Kth Smallest Element in a BST
  • Gradle 5.0 正式版发布
  • nodejs调试方法
  • PermissionScope Swift4 兼容问题
  • PHP 7 修改了什么呢 -- 2
  • Tornado学习笔记(1)
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 飞驰在Mesos的涡轮引擎上
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 近期前端发展计划
  • 微信小程序实战练习(仿五洲到家微信版)
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 源码安装memcached和php memcache扩展
  • 在Unity中实现一个简单的消息管理器
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (PySpark)RDD实验实战——求商品销量排行
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (全注解开发)学习Spring-MVC的第三天
  • (算法二)滑动窗口
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)我也是一只IT小小鸟
  • **PHP分步表单提交思路(分页表单提交)
  • .libPaths()设置包加载目录
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .Net core 6.0 升8.0
  • .NET Reactor简单使用教程
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net 怎么循环得到数组里的值_关于js数组
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET导入Excel数据