在kettle中的kettle-core.jar中存在一个bug,导致kjb在spoon中执行同在kitchen执行和调用api的时候执行结果不一样,体现在变量替换中如果要替换的变量不存在的时候,在spoon中替换为空,在kitchen中则不替换。
具体bug所在位置为:org.pentaho.di.core.util.StringUtil中的53行。
原来为
int i = rest.indexOf(open);
while (i > -1)
{
int j = rest.indexOf(close, i + open.length());

if (j > -1)
{
String varName = rest.substring(i + open.length(), j);
Object value = variablesValues.get(varName);
if (value == null)
{
value = open + varName + close;
}
else
{
int another = ((String)value).indexOf(open);

if (another > -1)
{
if (recursion > 50)
{
throw new RuntimeException("Endless loop detected for substitution of variable: " + (String)value);
}

recursion++; value = substitute((String)value, variablesValues, open, close, recursion);
}
}
buffer.append(rest.substring(0, i));
buffer.append(value);
rest = rest.substring(j + close.length());
}
else
{
buffer.append(rest);
rest = "";
}

i = rest.indexOf(open);
}

其中的
value = open + varName + close;
应该为value = "";

kettle的bug相关推荐

  1. Kettle实现数据抽取转换和装载工具运行及源代码编译

    Kettle标榜的就是绿色运行无安装,不过有些环境运行起来很麻烦,这里有一些相关的总结,希望可以帮助到使用Kettle十分崩溃的初学者,当然我也是其中之一.Kettle在Win7下有问题,建议直接重装 ...

  2. KETTLE执行监控(一):界面配置方式

    文章目录 准备 日志表的建表语句 作业日志表 作业日志通道表 转换日志表 转换步骤日志表 转换 前提 转换日志表 转换步骤日志表 作业 前提 作业日志表 作业日志通道表 准备 日志表的建表语句 基于o ...

  3. kettle运行spoon.bat时找不到javaw文件 bug报错

    文章目录 问题描述 问题分析 解决方法 测试以下 问题描述 kettle运行spoon.bat时找不到javaw.exe文件 问题分析 说的是javaw.exe 文件,但是jdk安装好的版本也对应的, ...

  4. kettle的基本介绍

    Kettle 主要内容: 一.ETL介绍 二.Kettle介绍 三.Java调用Kettle API 一.ETL介绍 1. ETL是什么? 1).ETL分别是"Extract".& ...

  5. Kettle能做什么?

    简介 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. Kettle 中文名称叫水壶,该项目的主程序员MATT  ...

  6. big5码在线转换_【开源】基于 SpringBoot 的 web kettle 在线采集平台

    kettle-scheduler-boot   开发计划 序号 项目 状态 优先级 1 在线管理,编辑kettle脚本 紧急 2 通过源码实现集群,多线程执行任务 ✔ 紧急 2 重构jpa部分,改为m ...

  7. kettle 邮件服务器,kettle 实用功能之三 ---- 使用 kettle 群发动态内容的邮件。

    有个客户是做外贸生意的,经常需要群发邮件,要求邮件里商品名称,收信人称谓等内容是动态的. 他一直找不到一个合适的免费的群发工具,于是我推荐他使用了 kettle,并帮他画了一个流程来群发邮件.(这位朋 ...

  8. mysql 批量数据插入很慢(kettle 输入输出组件) 性能优化办法

    背景 最近在做数仓重构项目,遇到一些性能瓶颈,这里记录一下解决办法. 随着业务数据每天都在增加,几年前开发的etl任务开始跑不动了.大表一般是通过增量的方式插入,但是修复bug 或者每月/季度跑一次的 ...

  9. Datastage,Informatica,Kettle

    为什么要用ETL工具? 1.当数据来自不同的物理主机,这时候如使用SQL语句去处理的话,就显得比较吃力且开销也更大. 2.数据来源可以是各种不同的数据库或者文件,这时候需要先把他们整理成统一的格式后才 ...

最新文章

  1. Ubuntu中C代码静态检查工具Splint的安装配置和使用
  2. Windows Server入门系列29 Hash加密与SAM数据库
  3. raspberry pi_您应该为项目选择哪种Raspberry Pi?
  4. 创业基础-乐训课堂-李家华-答案
  5. 蒙特卡洛模拟(求圆周率)
  6. NPOI遍历excel表格
  7. 数据建模 - 概念模型,逻辑模型,物理模型 的区别以及建模方式
  8. 苏大计算机专业就业如何,苏州大学好就业吗?附苏州大学就业率最高的专业名单...
  9. 用jQuery制作对联广告
  10. 使用AT89C51芯片实现生日快乐歌
  11. html字体颜色代码属性,HTML文本属性颜色控制属性的实现
  12. python网络爬虫网易云音乐_一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取...
  13. 复制粘贴技巧,全选快捷键ctrl加什么?
  14. requests模块的异常处理
  15. 2014 acm亚洲区域赛(北京)总结
  16. Luogu P2448 无尽的生命
  17. [投资理念]沃伦-巴菲特的12条忠告
  18. Vue导入bootstrap使得glyphicon glyphicon-star-empty图标不显示
  19. Curator 三种 Watcher 监听实现
  20. GitChat · 人工智能 | 人工智能产品测试方法探索

热门文章

  1. Java垃圾回收(清除内存),监控内存
  2. 计算机毕业设计PHP+安卓基于Android的图书管理系统论文(源码+程序+lw+远程调试)
  3. 基于Egret的微信小游戏H5项目总结
  4. 『TypeScript』泛型
  5. uni-app发行微信小程序时报错
  6. 关于r2s做旁路由的关键配置
  7. 初学Springboot使用MyBatis-Plus出现Invalid bound statement (not found)的解决
  8. 手把手教你学51单片机——函数进阶与按键
  9. 蓝桥杯官网题2(含VIP试题且带详细解析!小白看过来!!
  10. 电子元件学习——晶闸管(可控硅)