kettle 修改服务器文件名,kettle加文件名变量

本文介绍如何使用变量在Kettle中处理不定名的Excel文件,包括设置系统变量、数据库变量和API调用,以实现灵活的数据迁移。讲解了三种方法:配置文件、变量赋值和命令行参数传递,适用于不同场景的变量管理。
摘要由CSDN通过智能技术生成

假设我们现在要将一批 Excel 文件导入到一个数据库里, 而Excel 文件的名称和目录是不定的,

这时就要使用变量了.

在 "Excel 输入" 步骤中将文件名设置为一个变量如 ${filename}, 如下图:

a4c26d1e5885305701be709a3d33442f.png

根据具体情况的不同, 在运行时可以有三种方式来设置 filename 变量

1. 在运行一个转换之前, 修改 kettle.properties 文件, 在这个文件里设置 filename 变量.

但要注意的是这种方式只能设置英文的参数,如果要设置中文参数, 需要先转换为 Unicode.

2. 如果文件名是存放在一个固定位置的,如数据库里或某个文件里, 这就方便一些了, 只要使用 "设置变量" 步骤, 就可以给

filename 变量赋值了.

3. 通过 API 来设置变量, 这是最灵活的方式了:

下面的这段代码, 说明了如何设置 变量和命令行参数, 并最终运行一个转换

public class TestSystemVariable {

public static void main (String[] args)

{

System.getProperties().put("filename","C:/temp.xls"); // 设置变量

filename, 作为系统变量

EnvUtil.environmentInit(); //初始化环境, 加载 kettle.properties 文件

StepLoader steploader = StepLoader.getInstance();

if (!steploader.read()) { // 加载所有插件和步骤

System.out.println("error load steps");

System.exit(1);

}

try {

TransMeta transMeta = new TransMeta("c:/temp.ktr");

Trans trans = new Trans(LogWriter.getInstance(), transMeta);

trans.execute(new String[]{}); // 在这里可以设置命令行参数

trans.waitUntilFinished(); // 等待所有子线程运行结束

trans.endProcessing("end");

} catch (KettleXMLException e) {

e.printStackTrace();

}

catch (KettleException e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值