ETL工具kettle学习总结 联系客服

发布时间 : 星期四 文章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());