一、背景介绍
经常有使用Kettle的程序员,希望了解如何通过Java代码执行资源库中的转换或者作业。本文通过一个代码实例,演示了几个相关核心类的使用。
二、代码实例
public class RepExec {
public static void main(String[] args) throws Exception {
// 初始化Kettle环境
KettleEnvironment.init();
// 创建资源库对象
KettleDatabaseRepository repository = new KettleDatabaseRepository();
// 创建资源库数据库对象
DatabaseMeta dataMeta = new DatabaseMeta("DM", "PostgreSQL", "Native", "110.110.119.238", "test", "5432",
"postgres", "test");
// 创建数据库资源库元数据对象
KettleDatabaseRepositoryMeta kettleDatabaseMeta = new KettleDatabaseRepositoryMeta("DM_ID", "DM_NAME",
"DM Description", dataMeta);
// 资源库赋值
repository.init(kettleDatabaseMeta);
// 连接资源库
repository.connect("admin", "admin");
// 构造资源库文件夹对象
RepositoryDirectoryInterface directory = repository.findDirectory("/");
// 获取转换元数据
TransMeta transMeta = ((Repository) repository).loadTransformation("test1", directory, null, false, null);
// 构造转换实例
Trans trans = new Trans(transMeta);
// 执行转换
trans.execute(null);
// 等待执行完毕
trans.waitUntilFinished();
//获取作业元数据
JobMeta jobMeta = ((Repository) repository).loadJob( repository.getJobId("test_job1", directory), null);
//构造作业实例
Job job = new Job(repository, jobMeta);
//执行作业
job.start();
}
}
领取专属 10元无门槛券
私享最新 技术干货