Kettle API - Java 调用示例
对向前兼容性的推荐 :如果想要动态地创造 Transformation (例如:从元数据),使用
XML 文件方法(KTR)而不是使用 API。 XML 文件兼容 Kettle 所有版本,同样对 job 有效的
1. 下面的例子进行以下操作:
1 创建 Transformation
2 保存 Transformation 信息到 XML 文件
3 获取在目标表操作的 SQL
4 执行 Transformation
5drop 目标表,使这个示例可以重复。
// 创建“复制表”的 transformation 元数据.
TransMeta transMeta = TransBuilder.buildCopyTable(
transformationName,
sourceDatabaseName,
sourceTableName,
sourceFields,
targetDatabaseName,
targetTableName,
targetFields
);
// 保存为文件:
String xml = transMeta.getXML();
DataOutputStream dos = new DataOutputStream(new FileOutputStream(new File(fileName)));
dos.write(xml.getBytes("UTF-8"));
dos.close();
System.out.println("Saved transformation to file: "+fileName);
//获取在目标表操作的 SQL
String sql = transMeta.getSQLStatementsString();
// 在目标表执行 sql:
Database targetDatabase = new Database(transMeta.findDatabase(targetDatabaseName));
targetDatabase.connect();
targetDatabase.execStatements(sql);
//现在执行 transformation
Trans trans = new Trans(transMeta);
trans.execute(null);
trans.waitUntilFinished();
//为了重复测试,再次 drop 目标表
targetDatabase.execStatement("drop table "+targetTableName);
评论11
最新资源