zoukankan      html  css  js  c++  java
  • kettle 的命令调用

    kettle 的 kitchen.bat 后面参数说明:
     

    Kettle是一个开源的ETLExtract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项目,项目名很有意思,水壶。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。Kettle包括三大块:

       Spoon——转换/工作(transform/job)设计工具 (GUI方式)

       Kitchen——工作(job)执行器 (命令行方式)
       Span——
    转换(trasform)执行器 (命令行方式)

    Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高

    效稳定。Kettle中有两种脚本文件,transformationjobtransformation完成针对数据的基础转换,job则完成整个工作流的控制。

    因为最近工作需要所以不得不研究下调用kitchen.bat后面接参数的问题。

    经过一段时间的研究终于知道传参的方法了。

    如下:

    kitchen.bat   后面可以是-也可以是/然后再加options

    Options:
    /rep        : Repository name
    /user       : Repository username
    /pass       : Repository password
    /job        : The name of the job to launch
    /dir        : The directory (dont forget the leading /)
    /file       : The filename (Job XML) to launch
    /level      : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
    /logfile    : The logging file to write to
    /listdir    : List the directories in the repository
    /listjobs   : List the jobs in the specified directory
    /listrep    : List the available repositories
    /norep      : Do not log into the repository
    /version    : show the version, revision and build date
    /param      : Set a named parameter <NAME>=<VALUE>. For example -param:FOO=bar
    /listparam : List information concerning the defined parameters in the specified job.
    /export     : Exports all linked resources of the specified job. The argument is the name of a ZIP
    file.

    而options 后面可以是=也可以是:也可以是空格

    kitchen.bat /file d:\   或者 -file=D:\ 或者/file:D:\等等都可以。。。

    定时执行的代码参考如下【原创】,可以执行的实例

    1、windows下的执行方式:

    建立一个mysql.dat的文件,里面写入

    cd D:/Kettle-3.0.2
    kitchen.bat /norep -file=D:/kettledata/mysal2orcle.kjb >> kitchen_%date:~0,10%.log
    exit

    保存文件。

    解释一下上面的语句

    cd D:/Kettle-3.0.2 这句的含义是跳转到kettle的根目录,因为kitchen.bat 文件在根目录下

    kitchen.bat /norep -file=D:/kettledata/mysal2orcle.kjb >> kitchen_%date:~0,10%.log

    上面的含义是,使用kitchen.bat 命令来执行job文件,job文件的存放路径是D:/kettledata/mysal2orcle.kjb,并且将执行的结果输出到 kitchen_%date:~0,10%.log文件中。

    2、linux下的书写格式:

    创建mysqldb.sh

    内容如下

    cd /home/Kettle-3.0.2 这句的含义是跳转到kettle的根目录,因为kitchen.bat 文件在根目录下
    ./kitchen.sh -file=/home/etl/mysql.kjb >> /home/etl/log/kettle.log

    然后这个文件在crontab中去执行

    注意:linux执行shell过程中,由于linux对权限要求很严格,所以kitchen.sh必须有可执行的权限。前面必须加上./,也就是./kitchen.sh才能执行,否则会提示找不到此命令。

    kitchen.bat的使用方法:

    Kitchen.bat /file:D:\job_name.kjb /level:Basic>>D:\etl.log

    使用心得:

    1.file和level都是前面有‘/’,后面有‘:’,任何一个都不能丢。

    2.此语句要在一行上完成,中间不能有换行符之类的。

    博主从昨天就开始调试的几个bat文件,始终不能在我指定的文件里面记日志,一直在dos界面记录,苦思不得其果,偶然的一个把bat文件全屏之后,发现原来语句被换行了,修改到同一行之后可以顺利的运行。

    3.此语句后面不能接任何语句,就算你在bat文件里面添加了别的语句,也不会得到执行,查阅了好多资料,没有发现解决办法,逼不得已,我只能把job做成了一个一个单独的bat文件,这个有点儿杯具。

    4.JDK或者JRE很重要。

    博主因为服务器上没有配置java环境,吃了不少苦。

    先是没装java环境,无法运行kettle;接着装好了java环境之后,job和转换可以正常运行,但是kitchen.bat语句不能正常运行,又查阅了一堆资料后发现,原来是环境变量的问题,设置了环境变量之后总算可以正常运行了。

     
    例子:

    set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"

    D:
    cd D:\DEV\KETTLE
    echo EXECUTE_TIME:%Ymd%>D:\DEV\KETTLE\zijinjob\log.txt
    call Kitchen.bat /norep /file=d:\dev\kettle\zijinjob\emp_capital_ri.kjb  >> D:\DEV\KETTLE\zijinjob\log.txt

     
    注意!在调用过程中可能会出现下列的错误,需要检查路径中是否有中文:
    “ERROR: kitchen  can't  continue  because the job couldn't  be  loaded ”
  • 相关阅读:
    matlab cell
    matlab linux 快捷键设置——有问题还是要解决
    latex 小结
    TOJ 1258 Very Simple Counting
    TOJ 2888 Pearls
    HDU 1248 寒冰王座
    TOJ 3486 Divisibility
    TOJ 3635 过山车
    TOJ 1840 Jack Straws
    HDU 4460 Friend Chains
  • 原文地址:https://www.cnblogs.com/Byrd/p/2994793.html
Copyright © 2011-2022 走看看