通过Java代码执行资源库中作业和转换

一、背景介绍

经常有使用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();

}

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180521G08XT000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券