3

嗨,我对 pentaho 水壶勺很陌生。我想要一个示例程序,它从 .csv 文件中获取输入并推送到数据库中,并且在像凌晨 2:30 这样的特定时间之后,一项工作将运行,并且该数据库(sql 开发人员)中的少量 csv 格式的记录将通过电子邮件发送给用户。我正在使用 Java 调用转换,例如:

public static void main(String[] args) {
    try {
            KettleEnvironment.init();
            TransMeta metaData = new TransMeta("hello.ktr");
            Trans trans = new Trans( metaData );
            trans.execute( null );
            trans.waitUntilFinished();
            if ( trans.getErrors() > 0 ) {
                System.out.print( "Error Executing transformation" );
            }
    } 
    catch( KettleException e ) {
            e.printStackTrace();
    }
}

在这里,我在 Spoon 中创建了 HelloWorld(hello.ktr) 程序并在 java 代码中调用它。我想做类似的事情。在勺子中进行转换和工作并调用我的java代码。请帮我解决这个问题。

4

1 回答 1

0

为什么不使用 crontab 安排程序在凌晨 2:30 运行?在 lunux 中,创建一个您想要的脚本,例如 start.sh 并添加以下脚本代码:

#!/bin/bash
30 2 * * * /root/transScript.sh /dev/null 2>&1 | mail -s "Cronjob ouput" saket@gmail.com

然后创建另一个可能称为 transScript 的脚本,例如 /root/transScript.sh 并在脚本中添加以下内容以使用 pan 运行转换。pan 是通过命令行运行水壶转换的工具。要通过命令行运行水壶作业,您必须使用厨房。

$ cat pdi.sh
#!/bin/bash
/opt/data-integration/pan.sh -file=/Users/saket/Transformations/hello.ktr 
/level:Basic

然后你所要做的就是运行这个命令来开始计划任务:

crontab start.sh
于 2014-12-11T09:21:31.313 回答