Java如何模拟kettle组件转换任务中输入-转换-输出功能点,此类问题在网上解答较少,需要研究kettle源码完成,在下面的叙述中,我将一一解答
输入
mysql
/**
* 创建步骤:(输入:表输入)
*
* @param transMeta
* @return
*/
private static StepMeta createStep1(TransMeta transMeta) {
// 新建一个表输入步骤(TableInputMeta)
TableInputMeta tableInputMeta = new TableInputMeta();
// 设置步骤1的数据库连接
tableInputMeta.setDatabaseMeta(transMeta.findDatabase("fromDbName"));
// 设置步骤1中的sql
tableInputMeta.setSQL("SELECT id ,name FROM user");
// 设置步骤名称
StepMeta step1 = new StepMeta("step1name", tableInputMeta);
return step1;
}
CSV
private static StepMeta createCsv1(TransMeta transMeta){
CsvInputMeta csvInputMeta=new CsvInputMeta(); csvInputMeta.setFilename("C:/Users/LENOVO/Desktop/kettle/test.csv"); csvInputMeta.setDelimiter(",");
csvInputMeta.setDefault();
csvInputMeta.setHeaderPresent(true);
TextFileInputField[] textFileInputField={new TextFileInputField("id",-1,-1),new TextFileInputField("name",-1,-1)};
csvInputMeta.setInputFields(textFileInputField);
StepMeta stepMeta1=new StepMeta("step1name",csvInputMeta);
return stepMeta1;
}