kettle的bug
在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相关推荐
- Kettle实现数据抽取转换和装载工具运行及源代码编译
Kettle标榜的就是绿色运行无安装,不过有些环境运行起来很麻烦,这里有一些相关的总结,希望可以帮助到使用Kettle十分崩溃的初学者,当然我也是其中之一.Kettle在Win7下有问题,建议直接重装 ...
- KETTLE执行监控(一):界面配置方式
文章目录 准备 日志表的建表语句 作业日志表 作业日志通道表 转换日志表 转换步骤日志表 转换 前提 转换日志表 转换步骤日志表 作业 前提 作业日志表 作业日志通道表 准备 日志表的建表语句 基于o ...
- kettle运行spoon.bat时找不到javaw文件 bug报错
文章目录 问题描述 问题分析 解决方法 测试以下 问题描述 kettle运行spoon.bat时找不到javaw.exe文件 问题分析 说的是javaw.exe 文件,但是jdk安装好的版本也对应的, ...
- kettle的基本介绍
Kettle 主要内容: 一.ETL介绍 二.Kettle介绍 三.Java调用Kettle API 一.ETL介绍 1. ETL是什么? 1).ETL分别是"Extract".& ...
- Kettle能做什么?
简介 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. Kettle 中文名称叫水壶,该项目的主程序员MATT ...
- big5码在线转换_【开源】基于 SpringBoot 的 web kettle 在线采集平台
kettle-scheduler-boot 开发计划 序号 项目 状态 优先级 1 在线管理,编辑kettle脚本 紧急 2 通过源码实现集群,多线程执行任务 ✔ 紧急 2 重构jpa部分,改为m ...
- kettle 邮件服务器,kettle 实用功能之三 ---- 使用 kettle 群发动态内容的邮件。
有个客户是做外贸生意的,经常需要群发邮件,要求邮件里商品名称,收信人称谓等内容是动态的. 他一直找不到一个合适的免费的群发工具,于是我推荐他使用了 kettle,并帮他画了一个流程来群发邮件.(这位朋 ...
- mysql 批量数据插入很慢(kettle 输入输出组件) 性能优化办法
背景 最近在做数仓重构项目,遇到一些性能瓶颈,这里记录一下解决办法. 随着业务数据每天都在增加,几年前开发的etl任务开始跑不动了.大表一般是通过增量的方式插入,但是修复bug 或者每月/季度跑一次的 ...
- Datastage,Informatica,Kettle
为什么要用ETL工具? 1.当数据来自不同的物理主机,这时候如使用SQL语句去处理的话,就显得比较吃力且开销也更大. 2.数据来源可以是各种不同的数据库或者文件,这时候需要先把他们整理成统一的格式后才 ...
最新文章
- Ubuntu中C代码静态检查工具Splint的安装配置和使用
- Windows Server入门系列29 Hash加密与SAM数据库
- raspberry pi_您应该为项目选择哪种Raspberry Pi?
- 创业基础-乐训课堂-李家华-答案
- 蒙特卡洛模拟(求圆周率)
- NPOI遍历excel表格
- 数据建模 - 概念模型,逻辑模型,物理模型 的区别以及建模方式
- 苏大计算机专业就业如何,苏州大学好就业吗?附苏州大学就业率最高的专业名单...
- 用jQuery制作对联广告
- 使用AT89C51芯片实现生日快乐歌
- html字体颜色代码属性,HTML文本属性颜色控制属性的实现
- python网络爬虫网易云音乐_一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取...
- 复制粘贴技巧,全选快捷键ctrl加什么?
- requests模块的异常处理
- 2014 acm亚洲区域赛(北京)总结
- Luogu P2448 无尽的生命
- [投资理念]沃伦-巴菲特的12条忠告
- Vue导入bootstrap使得glyphicon glyphicon-star-empty图标不显示
- Curator 三种 Watcher 监听实现
- GitChat · 人工智能 | 人工智能产品测试方法探索
热门文章
- Java垃圾回收(清除内存),监控内存
- 计算机毕业设计PHP+安卓基于Android的图书管理系统论文(源码+程序+lw+远程调试)
- 基于Egret的微信小游戏H5项目总结
- 『TypeScript』泛型
- uni-app发行微信小程序时报错
- 关于r2s做旁路由的关键配置
- 初学Springboot使用MyBatis-Plus出现Invalid bound statement (not found)的解决
- 手把手教你学51单片机——函数进阶与按键
- 蓝桥杯官网题2(含VIP试题且带详细解析!小白看过来!!
- 电子元件学习——晶闸管(可控硅)