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);
targetDatabase.disconnect();