• 【原创】使用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的大小。

  • 相关阅读:
    sqoop常用命令三 ---- import导入 与export 覆盖更新,常见问题总结
    Sqoop 数据导出:全量、增量、更新
    idea 安装热部署插件
    Python学习之turtle绘图篇
    使用python自动画一只小猪佩奇(源码)
    Python turtle安装和使用教程
    PYCHARM三方库安装方法
    Impala编译部署-3
    SSLv3 SSLContext not available Tomcat
    SSLv3 SSLContext not available Tomcat
  • 原文地址:https://www.cnblogs.com/zhangxsh/p/3549127.html
Copyright © 2020-2023  润新知