预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

KettleAPI-Java调用示例对向前兼容性的推荐:如果想要动态地创造Transformation(例如:从元数据),使用XML文件方法(KTR)而不是使用API。XML文件兼容Kettle所有版本,同样对job有效的。下面的例子进行以下操作:1创建Transformation2保存Transformation信息到XML文件3获取在目标表操作的SQL4执行Transformation5drop目标表,使这个示例可以重复。//创建“复制表”的transformation元数据.TransMetatransMeta=TransBuilder.buildCopyTable(transformationName,sourceDatabaseName,sourceTableName,sourceFields,targetDatabaseName,targetTableName,targetFields);//保存为文件:Stringxml=transMeta.getXML();DataOutputStreamdos=newDataOutputStream(newFileOutputStream(newFile(fileName)));dos.write(xml.getBytes("UTF-8"));dos.close();System.out.println("Savedtransformationtofile:"+fileName);//获取在目标表操作的SQLStringsql=transMeta.getSQLStatementsString();//在目标表执行sql:DatabasetargetDatabase=newDatabase(transMeta.findDatabase(targetDatabaseName));targetDatabase.connect();targetDatabase.execStatements(sql);//现在执行transformationTranstrans=newTrans(transMeta);trans.execute(null);trans.waitUntilFinished();//为了重复测试,再次drop目标表targetDatabase.execStatement("droptable"+targetTableName);targetDatabase.disconnect();下面是创建Transformation的方法的代码:/***CreatesanewTransformationusinginputparameterssuchasthetablenametoreadfrom.*@paramtransformationNametransformation的名称*@paramsourceDatabaseName输入的database名称*@paramsourceTableName要读取的表名*@paramsourceFields要读取的列名*@paramtargetDatabaseName目标database名*@paramtargetTableName要写入的表名*@paramtargetFields要写入的列名(要跟读取的列长度相同)*@returnAnewtransformationmetadataobject*@throwsKettleExceptionIntherarecasesomethinggoeswrong*/publicstaticfinalTransMetabuildCopyTable(StringtransformationName,StringsourceDatabaseName,StringsourceTableName,String[]sourceFields,StringtargetDatabaseName,StringtargetTableName,String[]targetFields)throwsKettleException{EnvUtil.environmentInit();try{//Createanewtransformation...//TransMetatransMeta=newTransMeta();transMeta.setName(transformationName);//添加数据库连接for(inti=0;i<databasesXML.length;i++){DatabaseMetadatabaseMeta=newDatabaseMeta(databasesXML[i]);transMeta.addDatabase(databaseMeta);}DatabaseMetasourceDBInfo=trans