发布时间 : 星期四 文章ETL工具kettle学习总结更新完毕开始阅读6352122d915f804d2b16c193
5.2 SQL
执行SQL脚本
可以执行写好的sql脚本,指定sql路径即可。 也可以插入编辑sql脚本。
5.3 Shell
执行SHELL脚本,
可以执行已经写好的shell脚本 指定shell脚本路径即可,也可以自己插入,编辑shell脚本 可以把前一个步骤的执行结果当作参数传入
与现有应用程序集成
通过图形化界面设计出来的transformation ,job都是xml格式的文件。通过加载环境变量,初始化配置文件可以在servlet或者其他应用程序中中执行转换。 大致执行方式如下:
public static void runTransformation(String filename) { try {
StepLoader.init();
EnvUtil.environmentInit();
TransMeta transMeta = new TransMeta(filename); Trans trans = new Trans(transMeta);
trans.execute(null); // You can pass arguments instead of null. trans.waitUntilFinished(); if ( trans.getErrors() > 0 ) {
throw new RuntimeException( \ } }
catch ( KettleException e ) { System.out.println(e); } }
通过插件扩展现有功能
1) 至少实现4个接口
StepMetaInterface接口 定义元数据,执行检查等 StepInterface接口 集成自BaseStep,步骤
StepDataInterface 接口 处理游标,数据库结果集,文件等 StepDialogInterface接口 编辑,设置变量的图形化界面
类名命名规则:
四个类的前缀保持一致,譬如实现StepMetaInterface的类是MyMeta
那么实现StepInterface的类是My,实现StepDataInterface的是MyData,实现StepDialogInterface的是MyDialog
2) 定义plugin.xml文件
id=\ iconfile=\
description=\
tooltip=\ category=\
classname=\
小例子 文件批量入库: 获取一个目录下的文件名,使用一个正则表达式来指定文件名。 使用一个 javascript 脚本,读取文件内容, 如果文件是二进制文件,文件内容一般保存为 BLOB 、Binary 、Image 等类型 如果文件是字符型文件,文件内容一般保存为 CLOB 、varchar、Text 等类型 注意:因为该方法是一次性将文件内容都读到了内存中,因此只能处理比较小的文件 file = new Packages.java.io.File(filename.getString());