• 【原创】使用Kettle的一些心得和经验


    用kettle做etl也有段时间了,遇到很多问题,总结了一下。

    【关于版本的问题】

       kettle常用的版本有4.1和4.4,对于4.1版本:

    1.该版本的兼容性有点差,在某些机器上运行会启动失败,或者是启动完后增加资源库时报错直接退出。

    2.对于etl的sql,比如oracle,不支持/*------*/的注释方式,会将其识别为错误的sql,仅支持--的注释方式。而4.4不存在这个问题。

    3.运行不稳定,执行复杂etl过程时容易出现异常退出。

    【关于etl过程的问题】

    无论4.1或者4.4,有时会出现一些莫名其妙的报错信息,如在oracle下面会报出:

     ORA-01013: user requested cancel of current operation

    这貌似是oracle爆出来的,好像和sql本身并没有关系,将sql直接到数据库中跑,也没有问题,百思不得其解,调整oracle参数、替换jdbc驱动等都未解决。后来在kettle的官方论坛上找到了一段提示

    http://forums.pentaho.com/showthread.php?76733-Strange-SQL-error-kills-DB-input-step
    Kettle will stop any SQL processing whenever there is an error, in any step of the transformation. 
    Maybe it helps to increase the logging level and look for other steps that might be throwing an error. If preview works fine it is likely that the error is caused by a step further down in the transformation. Maybe the cause is a specific row, like maybe a row with null values where they are not expected. 

    ,大意是这类错误一般都是由etlsql造成的,如果将执行的日志级别调高一些会看出来具体的原因。所以,将日志级别调整的非常详细会看出具体是什么错误,最后发现还是etl的问题,比如输入表A的数据往B表中输出,结果在B表中没有找到对应的列而报错,如果日志信息不详细,则有时会提示如ORA-01013的错误。

    【关于优化】

    kettle使用java实现,所以,有时etl过程比较长,所以有时需要调整jvm内存大小,在Spoon.bat中增加Xmx和Xms以及PermSize的大小。

  • 相关阅读:
    配置sqlserver端口
    HTML5本地存储之localStorage
    初始化ArrayList的方法
    like 模糊查询 mybatis写法
    关于删除 值的引用 导致入参丢失的问题。
    学生做题分析功能设计(正确率,已做)
    关于商城类项目 商品表如何设计的问题
    修改Mysql的自增Id
    java list转map的几种方式
    jxls 入门及几个比较坑的地方
  • 原文地址:https://www.cnblogs.com/zhangxsh/p/3549127.html
Copyright © 2020-2023  润新知