`

kettle执行job

 
阅读更多

ETL高级教程kettle

博客分类:
 

1,Kettle跨平台使用。
    例如:在AIX下(AIX是IBM商用UNIX操作系统,此处在LINUX/UNIX同样适用),运行Kettle的相关步骤如下:
    1)进入到Kettle部署的路径
    2)执行 chmod *.sh,将所有shell文件添加可执行权限
    3)在Kettle路径下,如果要执行transformation,就运行./pan.sh -file=?.ktr -debug=debug -log=log.log
    其中。-file说明你要运行的transformation文件所在的路径;-debug说明日志输出的级别;-log说明日志输出的路径
    4)同理,对于job的执行,请将./pan.sh更换成./kitchen.sh,其他部分说明不变。

2,Kettle环境变量使用。
    在transformation中,Core Objects-->Job-->Set Variables,可以设置环境变量,对于绝对路径和相对路径的转换很有帮助,Kettle的跨平台很大程度依靠它

3,其它功能的使用。
    其它功能包括DB存储过程调用,流查询,值映射,聚合记录等,各位自行摸索

4,Kettle定时功能。
    在Job下的start模块,有一个定时功能,可以每日,每周等方式进行定时,对于周期性的ETL,很有帮助。

    a.使用资源库(repository)登录时,默认的用户名和密码是admin/admin。

    b.当job是存放在资源库(一般资源库都使用数据库)中时,使用Kitchen.bat执行job时,需使用如下的命令行:
Kitchen.bat /rep kettle /user admin /pass admin /job job名

    c.当job没有存放在资源库而存放在文件系统时,使用Kitchen.bat执行job时,需使用如下的命令行:
Kitchen.bat /norep /file user-transfer-job.kjb

    d.可以使用命令行执行job后,就可以使用windows或linux的任务调度来定时执行任务了

    e.如果出现异常语句,

       Unexpected error during transformation metadata load
       No repository defined!

    请按上面的操作排除。



5,Kettle经验之日志。
    Kettle对于日志的处理,存在一个BUG,看过上一篇的人或许已经看到了我的留言,Kettle对于日志处理有一个BUG,当日志多于49M(不是50M,也不是49M),Kettle就会自动停止,这一点我在源码里面也没有找到对应的设置和约束,原因还找不到,因为是日志没有写,所以原因也不好跟踪还不知道具体原因。

6,Kettle之效率提升。
    Kettle作为一款ETL工具,肯定无法避免遇到效率问题,当很大的数据源输入的时候,就会遇到效率的问题。对此有几个解决办法:
    1)数据库端创建索引。对需要进行查询的数据库端字段,创建索引,可以在很大程度上提升查询的效率,最多的时候,我不创建索引,一秒钟平均查询4条记录,创建索引之后,一秒钟查询1300条记录。
    2)数据库查询和流查询注意使用环境。因为数据库查询为数据输入端输入一条记录,就对目标表进行一次查询,而流查询则是将目标表读取到内存中,数据输入端输入数据时,对内从进行查询,所以,当输入端为大数据量,而被查询表数据量较小(几百条记录),则可以使用流查询,毕竟将目标表读到内存中,查询的速度会有非常大的提升(内存的读写速度是硬盘的几百倍,再加上数据库自身条件的制约,速度影响会更大)。同理,对于目标表是大数据量,还是建议使用数据库查询,不然的话,一下子几百M的内存被干进去了,还是很恐怖的。
    3)谨慎使用javascript脚本,因为javascript本身效率就不高,当你使用js的时候,就要考虑你每一条记录,就要执行一次js所需要的时间了。
    4)数据库commit次数,一条记录和一百条记录commit对效率的影响肯定是不一样的。
    5)表输入的sql语句的写法。有些人喜欢在表输入的时候,将所有关联都写进去,要么from N多个表,要么in来in去,这样,就要面对我在2)里面说道的问题,需要注意。
    6)注意日志输出,例如选择数据库更新方式,而且日志级别是debug,那么后台就会拼命的输出日志,会在很大程度上影响速度,此处一定要注意。

7,常见的调试BUG。
    Kettle提供了很多调试的解决办法,但是对于常见的调试BUG还是能避免就避免。
    1)路径问题。我最常遇到的问题就是在windows下调试成功,但是部署到UNIX下出问题,忘记将windows下路径变成unix下,经常会出现问题。
    2)输出端,数据库插入更新选择不对。输出端,提供了三种数据库输出的办法,数据库输出,插入/更新,更新,对于这三种,各有利弊,如果你知道数据库输出,完全是插入,如果有重复数据,则会报错;插入更新和更新,因为更新数据时,后台输出很多日志,会导致效率很低。

分享到:
评论

相关推荐

    java调用kettle中的job与转换-源码

    首先,Kettle中的Job是工作流的集合,由一系列的步骤组成,用于执行一系列的数据处理任务。而转换(Transformation)则是数据处理的具体步骤,它包含了读取、清洗、转换和加载数据的操作。在Java中调用这些,可以...

    利用kettle运行job,完成以上的两个过程.mp4

    利用kettle运行job,完成以上的两个过程.mp4Kettle研究-1-ETL认识与Kettle研读 ETL工具Kettle研究-2-Kettle安装部署 ETL工具Kettle研究-3-MySQL数据导入HIVE ETL工具Kettle研究-4-同步和更新备份表

    kettle 读取job 和流程

    **Job(工作流)** 是Kettle中的高层次工作单元,它定义了一组任务的执行顺序和逻辑。Job 主要用于管理和调度其他Kettle组件,如Transformations(转换),或者执行外部系统命令、数据库操作等。你可以通过拖拽不同...

    kettle使用job变量实现循环例子

    总结来说,这个例子展示了如何在Kettle的Job中使用变量实现循环处理,通过读取文本文件中的表名列表,对每个表执行相同的数据处理流程。这种方式灵活性高,可以根据需要替换数据源,如数据库、API或其他文件格式,以...

    kettle - JOB循环 , 用于kettle失败后重试 !

    kettle - JOB循环 , 用于kettle失败后重试 ! 具体内容请下载查看!这里不多做解析 ! kettle - JOB循环 , 用于kettle失败后重试 ! 具体内容请下载查看!这里不多做解析 !

    Kettle JOB执行出错,发送带附件的邮件

    Kettle JOB执行出错,发送带附件的邮件

    kettle执行转换每一行数据

    标题“kettle执行转换每一行数据”暗示了我们将关注Kettle如何处理数据库表中的记录。在Kettle中,这个过程通常涉及到“表输入”和“表输出”步骤,以及可能的中间转换步骤。首先,我们需要建立一个JDBC连接,这是...

    kettle集成应用之---java调用执行transformation和job

    kettle集成应用之java调用执行transformation和job kettle是一款功能强大的数据集成工具,可以在java应用程序中集成应用,实现调用资源库上和本地的transformation和job。下面是kettle集成应用的详细知识点: 一、...

    linux部署 kettle (超详细)

    - `test.sh`:此脚本将用于调用Kettle执行Job。 - `display.log`:用于记录Job执行的日志信息。 给这两个文件赋予权限,确保它们可写,使用`chmod a+w test.sh`和`chmod a+w display.log`命令。 编辑`test.sh`文件...

    kettle集群(cluster)在多个服务器上并发执行

    然后,我们可以在集群中创建一个新的job,用于执行数据处理和排序任务。 五、基于kettle集群模式对数据库表进行排序 kettle集群模式可以对数据库表进行高效的排序处理。在这个实验中,我们使用了kettle集群模式对...

    Kettle实现步骤循环执行

    标题"Kettle实现步骤循环执行"所指的就是在Kettle的工作流设计中,如何设置和配置步骤以便于它们能够按预定条件或次数循环执行。这在处理大量或者需要动态迭代的数据时非常有用。 首先,Kettle的工作流是由一系列的...

    java调用4.20 kettle的job和tran(含需要用到的jar包)

    Java调用Kettle 4.20 Job和Tran是一个常见的需求,特别是在集成数据处理或ETL(提取、转换、加载)流程中。Kettle,也称为Pentaho Data Integration (PDI),是一款强大的开源数据集成工具,允许用户通过图形化界面...

    java集成kettle执行作业文件.rar

    Java集成Kettle执行作业文件是将Java程序与Pentaho Data Integration(Kettle)工具结合,以实现数据处理和转换的自动化。Kettle是一款强大的ETL(Extract, Transform, Load)工具,它允许用户通过图形化界面创建...

    kettle4 job插件模板

    5. **实践应用**:通过实例展示如何利用TemplateJobPlugin创建和执行Job,包括设置参数、调用Transformation、错误处理等。 6. **最佳实践**:提供使用模板插件时的技巧和建议,避免常见错误,提升工作效率。 7. *...

    KETTLE远程执行

    在Kettle中,通过Carte服务器,可以实现远程执行作业(Job)和转换(Transformation),提高工作效率并方便管理。 远程执行Kettle作业的核心在于Carte,它是Kettle的轻量级HTTP服务器,可以接收来自客户端的Kettle...

    Kettle运行jar及其mvn脚本及配置文件.rar

    - 在Java代码中导入Kettle相关的类和API,创建并执行Kettle作业或转换。 - 构建和运行Java项目,Kettle的功能将被无缝集成到项目中。 以上就是关于"Kettle运行jar及其mvn脚本及配置文件.rar"的详细知识点,涵盖了...

    kettle使用命令行来运行ktr和kjb

    在Kettle中,主要通过两个批处理文件来进行命令行操作:`Pan.bat`用于运行转换(Transformation),而`Kitchen.bat`则用于执行作业(Job)。这两个脚本文件通常位于Kettle的安装目录下的`bin`目录中。 #### 三、...

    ETL(kettle)创建工作任务job详解.docx

    ETL(kettle)创建工作任务job详解 ...每一个 kettle job 都需要相应配置一个 Windows 定时任务进行周期性执行。在 kettle 的任务目录下,建立 windows-job 目录,windows-job 目录包含 2 个执行文件。

    文摘标题:JAVA带参数调用KETTLE远程服务执行任务

    本资源主要内容包括(资源有保证,都是干货,一看就会): ...2.JAVA传参调用KETTLE远程服务执行任务实现过程及注意事项说明。 3.附件包括:配套说明文档、代码包、KETLLE任务测试文件及数据库脚本。

Global site tag (gtag.js) - Google Analytics