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代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python中限制输入数值范围的技术性探讨

目录 一、引言 二、使用内置函数限制输入范围 三、使用条件语句进行范围检查 四、使用异常处理增强鲁棒性 五、结合第三方库进行输入验证 六、总结 一、引言 在Python编程中,用户输入是程序与用户交互的重要方式之一。然而,由于用户输入的多样…

2024版能源领域网络与数据安全政策全集

能源是工业的粮食,能源安全事关国家根本安全。当今国际局势风云变幻,全球地缘政治、经济、科技体系正经历深刻变化,能源局势将更加错综复杂,威胁能源安全的各种“灰犀牛”“黑天鹅”事件时有发生,促使国际能源版图深刻…

Capto 标准版【简体中文+Mac 】

Capto 是一套易于使用的屏幕捕捉、视频录制和视频编辑 Capto-capto安装包-安装包https://souurl.cn/DPhBmP 屏幕录制和教程视频制作 记录整个屏幕或选择的任何特定区域。在创建内容丰富的教程视频时选择显示或隐藏光标。无论您做什么,都可以确保获得高质量的视频。…

Arm发布Cortex X925、A725、A520,Armv9.2架构

随着半导体行业的不断发展,Arm 通过突破技术界限,为终端用户提供尖端解决方案,在核心和 IP 架构创新方面处于领先地位,尤其是在移动领域。2024 年,Arm 的年度战略进步重点是增强去年的 Armv9.2 架构,并带来…

kali系统baopoWiFi密码

kali系统baopoWiFi密码,仅供学习 取决强大的密码字典,如果别人密码设置的足够安全,也无法破解成功,并不是100%破解 一、准备一个无线网卡,需要免驱动,最好知道频率2.4HGZ还是5.0GHZ 二、插上USB接口,vmware模拟器选择连接虚拟机 三、输入命…

[Android] MediaCodec configure过程中的 profile 和 level

Android 的 MediaCodec 组件会在 configure 的过程中携带 profile 和 level 信息,比如 int32_t profile 8 int32_t level 16384 这些信息表明将要到来的stream的编码profile 和 level,因此底层在分配硬件解码器资源的时候是需要结合 分辨率&#xff0c…

代码随想录算法训练营day43 | 343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 确定dp数组以及下标的含义:dp[i]表示分拆数字i的最大乘积确定递推公式:dp[i] max(dp[i], max(i - k) * k, dp[i - k] * k});dp的初始化:dp[0]和dp[1]都是没有意义的,纯粹是为了后续遍历服务的确定遍历顺序&#x…

C++ day2 练习

思维导图 自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height), 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #inclu…

基于朴素贝叶斯算法的新闻类型预测,django框架开发,前端bootstrap,有爬虫有数据库

背景 在当今信息爆炸的时代,新闻内容的分类和预测对于用户个性化推荐和信息检索至关重要。基于朴素贝叶斯算法的新闻类型预测系统结合了机器学习和自然语言处理技术,能够根据新闻内容自动进行分类,提高新闻处理效率和准确性。采用Django框架…

科普之旅 | 什么是大语言模型

作者:陈之炎本文约2000字,建议阅读5分钟 本文介绍了大语言模型。 导读 在这个信息爆炸的时代,你是否曾幻想过与机器流畅交谈,或是让AI助你笔下生花,创作出惊艳的文章?这一切,都离不开大语言模型…

【一小时学会Charles抓包详细教程】Charles证书安装与SSL代理设置完全详解 (6)

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 Charles 安装证…

使用element的小弹框并修改css

使用el-popover来做弹框&#xff1a; 滑动或点击元素要加插槽slot"reference"来展示弹框&#xff1b; <el-popoverplacement"top"width"166"trigger"hover"popper-class"popover"><div><div><div>…

深度解读:Apache Kafka如何超越消息引擎的界限

你提出了一个非常有趣且广泛的话题:Apache Kafka不仅仅是一个消息引擎系统。通过了解Kafka的发展历程和现状,我们可以更全面地理解其功能和应用场景。 Kafka的发展历程 起源和初衷 Kafka最初由LinkedIn开发,目的是解决其内部对数据实时处理和分析的需求。LinkedIn当时面临…

统信UOS SSH服务升级(ubuntu20)内网

服务器配置 系统信息 SSH版本 目标版本 openssh-server_8.2p1-4_arm64.deb 因为不通互联网&#xff0c;所以所有deb包需要手动下载&#xff08;可以连接互联网的可以自动忽略手动下载deb步骤&#xff0c;直接apt-get install xxx 即可&#xff09; 升级步骤 !!!deb下载方式…

Spring Boot中如何接入jetcache缓存

Spring Boot是一个非常流行的Java开发框架&#xff0c;JetCache是一个基于注解的高性能缓存框架。在Spring Boot项目中接入JetCache缓存&#xff0c;可以提高系统的性能和并发能力。 本文将介绍如何在Spring Boot项目中使用JetCache缓存&#xff0c;并提供一个详细案例来说明如…

C++容器之链表(std::list)

目录 1 概述2 使用实例3 接口使用3.1 construct3.2 assigns3.3 iterators3.4 capacity3.5 access3.6 assign3.7 emplace_front3.8 push_front3.9 pop_front3.10 emplace_back3.11 push_back

容器技术解析

引言 容器技术是近年来快速发展的一项技术,它改变了应用程序开发、交付和运行的方式。本文将探讨容器是什么、为什么使用容器以及使用容器的好处,并将容器与虚拟机进行比较,以便更好地理解容器技术。 容器是什么? 容器是一种轻量级、独立、可移植的软件打包技术。容器将…

C++中的异常处理机制

C的异常处理机制是一种处理运行时错误的方式&#xff0c;它允许程序在检测到错误时抛出一个异常&#xff0c;并在程序的某个合适的地方捕获并处理这个异常。这种机制提高了代码的健壮性和可维护性。 异常的基本用法 抛出异常&#xff1a;使用throw关键字抛出一个异常。throw后…

Xilinx IP解析之DDS Compiler v6.0(1)—— 基础概念

前言 DDS&#xff08;Direct Digital Synthesis&#xff0c;直接数字综合器&#xff09;是一种正弦波发生器&#xff0c;在Quartus中它被称为NCO&#xff08;Numerically Controlled Oscillator&#xff0c;数控振荡器&#xff09;&#xff0c;两者是对同一功能IP核的不同称呼。…

AI数据分析:用kimi生成一个正弦波数学动画

正弦波公式: ƒ(x) a * sin(x x0) b 公式中&#xff1a; a: 决定正弦函数振动幅度的大小&#xff1b; x0:表示x开始比0拖后的弧度值&#xff1b; b&#xff1a;表示函数偏离X轴的距离&#xff1b; 对于难以理解的学生来说&#xff0c;可以用动画把这个公式直观的展现出…