kettle循环取结果集进行处理方法一(使用js)

2023-11-12

需求

循环取结果集中的一行,再根据单个结果进行处理
此处实例:从test库取id字段结果集,存储(id,2 x id)到set_value表中
此处使用js脚本
方法二(不使用js):https://blog.csdn.net/weixin_44135544/article/details/103522740

前提

test表:
在这里插入图片描述
set_value表:
在这里插入图片描述

具体步骤

第一步:
新建转换get_id_rows:
在这里插入图片描述
第二步:
新建作业:
在这里插入图片描述
按图所示连接各个组件
第一个js:

var prevRow=previous_result.getRows(); # 获取上一步的结果集
if (prevRow == null &&(prevRow.size()=0))
{
    false;

}else{
    parent_job.setVariable("size", prevRow.size()); # 结果集行数
    parent_job.setVariable("i",0); # 设置一个变量,用于循环结果集
    parent_job.setVariable("V_ID",prevRow.get(0).getString("id","")); # 根据变量名取结果集中的数据
    true;
}

检验字段的值 组件设置:
在这里插入图片描述
执行自己想要的转换或sql://此处仅仅将id和2倍的id存到set_value表中
在这里插入图片描述
第二个js:

var prevRow=previous_result.getRows();
var size = new Number(parent_job.getVariable("size")); # 总行数
var i = new Number(parent_job.getVariable("i"))+1; # 变量i加一
if(i<size){
parent_job.setVariable("V_ID",prevRow.get(i).getString("id","id")); # 设置结果集的下一行数据
}
parent_job.setVariable("i",i); # 将+1后的i再赋值给变量i
true;

又转到检验组件,判断是否循环完毕,没有继续循环,完毕结束。

测试:

运行结果:
在这里插入图片描述
查看set_value表:
在这里插入图片描述
实现所需功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kettle循环取结果集进行处理方法一(使用js) 的相关文章

  • Kettle连接Access抽取数据到MS SQLServer

    软件准备 xff1a kettle5 1 access xff08 32位 xff09 jdk1 7 xff08 32位 xff09 软件位数需要一致 xff0c 不要求操作系统位数 搭建流程 xff1a 1 access新建表 2 准备a
  • kettle获取系统时间,设置变量,获取变量

    kettle获取系统时间 设置变量 获取变量 两种方式 正则表达式 Java代码 一 新建转换 新建转换 在输入中选择获取系统信息 正则表达式 在脚本中选择正则表达式脚本 为什么要选择正则表达式脚本呢 简单 好用 2023 07 29 13
  • Kettle — 安装和部署

    前提 Kettle是纯Java编写的ETL开源工具 目前Kettle7和Kettle8都需要Java8或者以上才能正常运行 所以开运行Kettle前先检查Java环境是否正确配置 Java版本是否是8或者以上 Kettle安装 1 创建Ke
  • Kettle——转换步骤信息统计两种实现

    Kettle 步骤数据处理数量记录获取 Kettle获取数据处理条数记录日志信息 以前的途径是配置转换的日志信息来保存到数据库中 这种方式不是很灵活 有没有一种类似步骤方式来进行获取呢 Kettle在5 0版本中提供了一个步骤 在 统计 转
  • Kettle Spoon入门教程

    Kettle是一款国外开源的ETL工具 纯java编写 可以在Window Linux Unix上运行 数据抽取高效稳定 其中 Spoon是Kettle中的一个组件 其他组件有PAN CHEF Encr和KITCHEN等 Spoon通过图形
  • kettle中null值的处理方式

    今天在用kettle对mysql插入空值 时 发现对空值的处理在插入mysql时 会自动转转换为null值 在网上找一下 需要在kettle properties文件中添加如下参数 就不会自动转换了 windows下文件的位置 C User
  • Kettle使用jndi

    kettle可以使用jdbc的方式设置job或者tansform的数据库连接 但是 同时它也支持JNDI方式连接数据库 后者更加方便 只需要配置一份配置文件就可以了 不用每个DBConnection都配置一遍 具体使用方法如下 1 在dat
  • kettle中判断输入的数据是不是 偶然错误

    参照表一个常见的用途就是做数据的查询和检验 提供一个输入字段 如果输入字段里的值没有匹配上 就给对应的数据行做一个错误标志 下面使用城市和邮政编码查询做个例子 演示如何使用计算器步骤和查询步骤来判断地址和邮政编码是否匹配 完整的转换如下图
  • kettle定时调度

    简单版 https blog csdn net hzp666 article details 107841754 详细版 1 场景介绍 根据不同的操作系统定时调度kettle资源库中的job 1 1Windows系统的定时调度 我的是 ve
  • kettle-记录集连接(可实现左、右、全、内连接)

    连接前需先排序 记录连接集控件设置 结果 以左连接为例 连接前的两个数据源 连接后
  • 数据的清洗和检验(完全去重,缺失值的填充)

    一 完全去重 1 打开kettle工具 新建转换 gt 创建CSV文件输入控件 gt 1唯一行 哈希值 控件 gt 跳连接线 2 配置CSV文件输入控件 gt 进入CSV文件控制页面 如图所示 3 点击浏览 gt 选择完去重的文件merge
  • Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密

    Kettle中使用JavaScript调用jar包对文件内容进行MD5加密 1 本文主要知识点 JavaScript调用jar包对文件内容进行MD5加密 返回加密md5值 Kettle实现对文件内容的加密 返回加密md5值 2 使用方法 1
  • kettle案例11-排序记录

    参考 ETL数据整合与处理 任务3 1 排序是对数据中心的无序记录 按照自然或客观规律 根据关键字段大小递增或递减的次序 对记录重新排列的过程 为了得出学生的成绩排名 需要对 2019年11月月考数学成绩 xls 文件 使用 排序记录 组件
  • Timestamp : Unable to compare with value [Binary]kettle插入到Oracle报错

    kettle插入更新到Oracle报错 Timestamp Unable to compare with value Binary Binary can t be converted to a timestamp 如图 原因 一般是前一步如
  • 企业级数据单表全量增量抽取数据模型(Kettle版)

    最近在使用Kettle进行ETL的工作 现在总结一下 需求是将MYSQL中的表数据增量备份到HIVE仓库中 第一次是全量 我只想给大伙来点实用的 避免大家踩坑 Kettle是一个基于图形化的ETL工具 也可以用于集成各种作业 比如Sqoop
  • Pentaho 数据集成无法在新的 Mac M1 上启动

    当我尝试在 Mac bigSur M1 上运行 Pentaho Data Integration 时遇到问题 问题代码如下 I m sorry this Mac platform arm64 is not yet supported Ple
  • Pentaho Spoon - 根据字段内容输出到多个文件

    我一直在尝试根据特定字段的值将 pentaho 转换的结果拆分为多个文件 但没有任何运气 例如 包含以下内容的结果集 姓氏 名字 国家 地区 奥巴马 巴拉克 美国 卡梅伦 大卫 英国 布莱尔 托尼 英国 将导致创建 2 个输出文件 USA
  • Pentaho数据集成Kettle转换中如何配置生产环境的数据库连接

    我设计了一个ktr文件进行转换 我需要配置生产环境的数据库连接详细信息 我怎样才能做到这一点 有什么建议么 我使用环境变量 KETTLE HOME KETTLE JNDI ROOT PATH PATH KETTLE HOME Kettle
  • 如何在 Pentaho BI 服务器 v6 CE 上部署计划的 Kettle 作业

    我有一台运行 Pentaho BI 服务器 v6 社区版的服务器 我们开发了一项 Kettle 作业 用于从一个数据库提取到另一个数据库 并导出为 KJB 文件 我想每 12 个小时左右运行一次这项工作 我注意到BI服务器已经包含了Kett
  • 在 Pentaho Kettle 中使用变量名称进行数据库连接

    我正在研究 PDI 水壶 我们可以定义一个变量并在数据库连接名称中使用它吗 因此 如果将来我需要更改多个转换中的连接 我只需更改水壶属性文件中的变量值即可 只需使用变量Database Connection 例如 DB HostName a

随机推荐

  • 笔记本电脑切换不到投影仪 问题 解决方法

    我的笔记本是ati显卡的 在某次切换到投影仪的时候 出现问题 无法正确应用您所选择的以下设置 请更改设置并重试 外部监视器或投影仪 电视机 分辨率 颜色质量 无法正确应用您所选择的以下设置 请更改设置并重试 显示配置 解决思路 公司还有一个
  • Neo-reGeorg正向代理配合kali使用

    Neo reGeorg正向代理配合kali使用 一 Neo reGeorg介绍 在了解Neo reGeorg之前 首先应该知道大名鼎鼎的项目 https github com sensepost reGeorg 其用于开启目标服务器到本地的
  • 数据存储的随想

    文章目录 数据分布的演变 数据的使用 总结 数据分布的演变 数据分布就是一个关于数据存放在哪里的问题 数据存储的地方不是固定的 随着应用规模的扩大 为了治理的方便 会适时地调整 其中就会包括数据存储的调整 数据与应用部署在同一台设备 在早期
  • ACCESS的VBA中如何打开文件对话框并获取选中文件的路径

    在 ACCESS 的 VBA 中 可以使用 FileDialog 对象的 Show 方法来打开文件对话框 并使用 SelectedItems 属性来获取选中文件的路径 例如 Dim fd As FileDialog Set fd Appli
  • C/C++ 报错提示 “表达式必须包含类类型” 与 “不可访问”

    今天给大家分享两个常见的错误 定义对象 调用函数 时提示 表达式必须包含类类型 的报错 对象调用函数时提示 不可访问 的报错 一 表达式必须包含类类型 这种报错会出现在两种情况 类没有数据成员时 使用类定义对象时带括号了 定义类时以指针方式
  • MySQL重装——Database initialization failed错误处理

    卸载MySQL 笔者由于跟着网上的教程将MySQL安装到了C盘 忘记了可以走更改路径这条路 在卸载MySQL的路上一去不复返 试过网上诸多重装方案 大体均为以下步骤 控制面板卸载MySQL 删除注册表 删除ProgramData Appli
  • 导出文件:window.open()

    导出文件 window open globalBus emit loading const Download http window location host DI activity orderExcel actId this actId
  • Python-ElasticSearch客户端的封装(聚合查询、统计查询、全量数据)

    目录 ES Python客户端介绍 封装代码 测试代码 参考 ES Python客户端介绍 官方提供了两个客户端elasticsearch elasticsearch dsl pip install elasticsearch pip in
  • Flink1.13.0 + Hudi 0.11.1 + Hive2.1.1 + presto0.273.3 + yanagishima 18.0

    摘要 flink1 13 0 整合 Hudi 0 11 1 通过FlinkSQL程序 FlinkSQL命令行对Hudi的MOR及COW进行批量写 流式写 流式读取 批量读取 通过flink sql cdc flink sql kafka f
  • CSDN周赛65期简要题解

    最近几期周赛里 貌似 Python 又变成 C 站的亲儿子了 输入形式是列表还不过瘾 现在输出形式也要求是列表 而且是连一个逗号 空格 中括号都不能少的 Python 标准列表形式 虽然对 Python 来说是信手拈来 但总要考虑一下其他编
  • Node.js 使用express搭建后台服务器 ( 进阶篇 )

    上篇文章我们介绍了利用express微服务搭建简单的后台服务器以及中间件 今天我们把模块化的思想注入 利用路由分别管理 暴露API接口与前端交互等等 我们先跑起来服务 let express require express 引入expres
  • Keras深度学习资料

    https cnbeining github io deep learning with python cn 1 introduction ch1 welcome html
  • SpringBoot拦截器和动态代理有什么区别?

    在 Spring Boot 中 拦截器和动态代理都是用来实现功能增强的 所以在很多时候 有人会认为拦截器的底层是通过动态代理实现的 所以本文就来盘点一下他们两的区别 以及拦截器的底层实现 1 拦截器 拦截器 Interceptor 准确来说
  • 获取google chrome浏览器的安装位置

    今天 要获取chrome exe安装的路径 发现window XP 和 win 7 的用户路径是一样的 win7 C Users Administrator AppData Local Google Chrome Application 这
  • 2021-1-28Linux学习纪要

    linux 目录结构 bin 存放经常使用的指令 sbin 存放的是系统管理员使用的系统管理程序 home 存放普通用户的主目录 在linux中每个用户都有一个自己的目录 root 超级用户的主目录 boot 存放linux启动核心文件 包
  • 基于样本的性能分析

    基于样本的性能分析是一种性能优化技术 通过定期采集程序在运行时的信息 样本 来识别程序的热点区域或常用路径 这与基于插桩的分析相对 后者通过插入额外的代码来记录每一次函数或代码块的执行 基于样本的方法的主要优点是它对程序的性能干扰较小 但可
  • 类文件具有错误的版本号59.0应为52.0

    很笨的问题 运行 bat批处理文件的时候用管理员权限运行
  • shiro从1.6.0升级到1.7.1版本,请求路径中带有中文接口报400

    由于shiro1 6 0版本出现了安全漏洞 于是进行了版本的升级 升级到1 71 版本 但遇到了以下问题 1 访问某个接口的时候 返回状态码400 invaild request 2 访问路径为XX XXX params XXX包含中文 找
  • java---自动拆装箱

    一 什么是装箱 什么是拆箱 将一个值封装起来就是装箱 就是将一个基本类型转换为一个封装类 否则就是拆箱 而在从Java SE5开始就提供了自动装箱的特性 二 自动如何实现 来一个小栗子 public class Main public st
  • kettle循环取结果集进行处理方法一(使用js)

    需求 循环取结果集中的一行 再根据单个结果进行处理 此处实例 从test库取id字段结果集 存储 id 2 x id 到set value表中 此处使用js脚本 方法二 不使用js https blog csdn net weixin 44