package com.Nxin.BigData;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleEOFException;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.repository.RepositoryDirectoryInterface;
import org.pentaho.di.repository.filerep.KettleFileRepository;
import org.pentaho.di.repository.filerep.KettleFileRepositoryMeta;
import org.pentaho.di.trans.TransMeta;
import org.pentaho.di.job.JobMeta;
import org.pentaho.di.job.Job;
import org.pentaho.di.trans.Trans;
public class Kettle {
public static void runTran() {
try {
String filename = "D:\\test.ktr"; //${Internal.Transformation.Filename.Directory}识别为程序目录
// StepLoader.init();
// EnvUtil.environmentInit();
KettleEnvironment.init();
TransMeta transMeta = new TransMeta(filename);
Trans trans = new Trans(transMeta);
trans.prepareExecution(null);
trans.startThreads();
trans.waitUntilFinished();
if (trans.getErrors() > 0) {
throw new RuntimeException(
"There were errors during transformation execution.");
}
} catch (KettleException e) {
// TODO Put your exception-handling code here.
System.out.println(e);
}
}
public static void runJob() {
try {
String filename = "D:\\test.kjb"; //${Internal.Job.Filename.Directory}识别为程序目录
// StepLoader.init();
// EnvUtil.environmentInit();
KettleEnvironment.init();
JobMeta jobMeta = new JobMeta(filename, null);
Job job = new Job(null, jobMeta);
job.start();
job.waitUntilFinished();
if (job.getErrors() > 0) {
throw new RuntimeException(
"There were errors during transformation execution.");
}
} catch (KettleException e) {
// TODO Put your exception-handling code here.
System.out.println(e);
}
}
public static void FileRepository() {
String tranName = "test0103";// 传输名称
Trans trans = null;
try {
// 初始化
KettleEnvironment.init();
// 资源库元对象
KettleFileRepositoryMeta repMeta =
new KettleFileRepositoryMeta("", "", "Kettle", "file:///D:/ETL/Kettle");
// 文件形式的资源库
KettleFileRepository rep = new KettleFileRepository();
rep.init(repMeta);
// 转换对象
if (tranName != null && !"".equals(tranName)) {
TransMeta transMeta = rep.loadTransformation(rep.getTransformationID(tranName, null), null);
// 转换
trans = new Trans(transMeta);
// 执行转换
trans.execute(null);
// 等待转换执行结束
trans.waitUntilFinished();
// 抛出异常
if (trans.getErrors() > 0) {
throw new Exception("传输过程中发生异常");
}
} else {
throw new KettleEOFException("传输名为空!");
}
} catch (Exception e) {
if (trans != null) {
trans.stopAll();
}
e.printStackTrace();
}
}
@SuppressWarnings("deprecation")
public static void JobFileRepository() {
String jobName = "test0103_2";// 传输名称
Job job = null;
try {
// 初始化
KettleEnvironment.init();
// 资源库元对象
KettleFileRepositoryMeta repMeta =
new KettleFileRepositoryMeta("", "Kettle2", "Kettle2", "file:///D:/ETL/Kettle");
// repMeta.setBaseDirectory("file:///D:/ETL/Kettle");;
// 文件形式的资源库
KettleFileRepository rep = new KettleFileRepository();
rep.init(repMeta);
//RepositoryDirectoryInterface directory = rep.loadRepositoryDirectoryTree();
//RepositoryDirectoryInterface directory = rep.findDirectory("file:///D:/ETL/Kettle");
RepositoryDirectoryInterface directory = rep.findDirectory(repMeta.getBaseDirectory());
// 作业对象
if (jobName != null && !"".equals(job)) {
// JobMeta jobMeta = rep.loadJob(jobName, directory, null, null);
JobMeta jobMeta = rep.loadJob(jobName, directory, null, null);
jobMeta.activateParameters();
// 作业
job = new Job(rep,jobMeta); //必须加rep否则无法
jobMeta.setParameterValue("client", "clientA"); //only needed for ETL
// 执行作业
job.start();
// 等待作业执行结束
job.waitUntilFinished();
// 抛出异常
if (job.getErrors() > 0) {
throw new Exception("传输过程中发生异常");
}
} else {
throw new KettleEOFException("传输名为空!");
}
} catch (Exception e) {
if (job != null) {
job.stopAll();
}
e.printStackTrace();
}
}
public static void main(String[] args) {
//runTran();
//runJob();
FileRepository();
//JobFileRepository();
}
}
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleEOFException;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.repository.RepositoryDirectoryInterface;
import org.pentaho.di.repository.filerep.KettleFileRepository;
import org.pentaho.di.repository.filerep.KettleFileRepositoryMeta;
import org.pentaho.di.trans.TransMeta;
import org.pentaho.di.job.JobMeta;
import org.pentaho.di.job.Job;
import org.pentaho.di.trans.Trans;
public class Kettle {
public static void runTran() {
try {
String filename = "D:\\test.ktr"; //${Internal.Transformation.Filename.Directory}识别为程序目录
// StepLoader.init();
// EnvUtil.environmentInit();
KettleEnvironment.init();
TransMeta transMeta = new TransMeta(filename);
Trans trans = new Trans(transMeta);
trans.prepareExecution(null);
trans.startThreads();
trans.waitUntilFinished();
if (trans.getErrors() > 0) {
throw new RuntimeException(
"There were errors during transformation execution.");
}
} catch (KettleException e) {
// TODO Put your exception-handling code here.
System.out.println(e);
}
}
public static void runJob() {
try {
String filename = "D:\\test.kjb"; //${Internal.Job.Filename.Directory}识别为程序目录
// StepLoader.init();
// EnvUtil.environmentInit();
KettleEnvironment.init();
JobMeta jobMeta = new JobMeta(filename, null);
Job job = new Job(null, jobMeta);
job.start();
job.waitUntilFinished();
if (job.getErrors() > 0) {
throw new RuntimeException(
"There were errors during transformation execution.");
}
} catch (KettleException e) {
// TODO Put your exception-handling code here.
System.out.println(e);
}
}
public static void FileRepository() {
String tranName = "test0103";// 传输名称
Trans trans = null;
try {
// 初始化
KettleEnvironment.init();
// 资源库元对象
KettleFileRepositoryMeta repMeta =
new KettleFileRepositoryMeta("", "", "Kettle", "file:///D:/ETL/Kettle");
// 文件形式的资源库
KettleFileRepository rep = new KettleFileRepository();
rep.init(repMeta);
// 转换对象
if (tranName != null && !"".equals(tranName)) {
TransMeta transMeta = rep.loadTransformation(rep.getTransformationID(tranName, null), null);
// 转换
trans = new Trans(transMeta);
// 执行转换
trans.execute(null);
// 等待转换执行结束
trans.waitUntilFinished();
// 抛出异常
if (trans.getErrors() > 0) {
throw new Exception("传输过程中发生异常");
}
} else {
throw new KettleEOFException("传输名为空!");
}
} catch (Exception e) {
if (trans != null) {
trans.stopAll();
}
e.printStackTrace();
}
}
@SuppressWarnings("deprecation")
public static void JobFileRepository() {
String jobName = "test0103_2";// 传输名称
Job job = null;
try {
// 初始化
KettleEnvironment.init();
// 资源库元对象
KettleFileRepositoryMeta repMeta =
new KettleFileRepositoryMeta("", "Kettle2", "Kettle2", "file:///D:/ETL/Kettle");
// repMeta.setBaseDirectory("file:///D:/ETL/Kettle");;
// 文件形式的资源库
KettleFileRepository rep = new KettleFileRepository();
rep.init(repMeta);
//RepositoryDirectoryInterface directory = rep.loadRepositoryDirectoryTree();
//RepositoryDirectoryInterface directory = rep.findDirectory("file:///D:/ETL/Kettle");
RepositoryDirectoryInterface directory = rep.findDirectory(repMeta.getBaseDirectory());
// 作业对象
if (jobName != null && !"".equals(job)) {
// JobMeta jobMeta = rep.loadJob(jobName, directory, null, null);
JobMeta jobMeta = rep.loadJob(jobName, directory, null, null);
jobMeta.activateParameters();
// 作业
job = new Job(rep,jobMeta); //必须加rep否则无法
jobMeta.setParameterValue("client", "clientA"); //only needed for ETL
// 执行作业
job.start();
// 等待作业执行结束
job.waitUntilFinished();
// 抛出异常
if (job.getErrors() > 0) {
throw new Exception("传输过程中发生异常");
}
} else {
throw new KettleEOFException("传输名为空!");
}
} catch (Exception e) {
if (job != null) {
job.stopAll();
}
e.printStackTrace();
}
}
public static void main(String[] args) {
//runTran();
//runJob();
FileRepository();
//JobFileRepository();
}
}