【Kettle】第一篇,Pan 的使用

Pan使用文档

1.什么是Pan?

  Pan是可以执行转换的程序,转换可以使Spoon设计出来的ktr格式文件也可以是资源库里的。通常转换都是以一定间隔时间去计划执行的(通过PDI企业版资源库计划功能,或者第三方工具像Cron和windows任务计划功能)。

2.安装

  第一步安装Oracle公司的java 1.7以上运行环境。之后,选择一个版本下载并解压 PDI software: pdi-ce-VERSION.zip压缩包,在解压文件夹里面你会发现许多文件(废话)。

  当你使用Unix风格运行环境(Solaris,Linux,OSX,...),需要给shell脚本执行权限,可以执行下面的命令让kettle文件夹下所有的shell脚本有执行权限;

cd data-integration
chmod +x *.sh

 

2.1启动Pan

  为了在不同平台使用,Kettle提供了不同的启动方式:

  • Pan.bat :windows 平台运行
  • pan.sh :Unix平台和OSX平台运行

  Pan能够在安装有Java 1.7以上的任何平台运行。

3.命令行操作选项

  以下是你可以使用的命令行操作选项。

重要提示:

  • 在windows平台上,在选项中使用(“-”)减号和等号(“=”)有问题,所以从2.2.2开始,新增加选项中可以使用斜线(“/”)和冒号(“:”);
  • 斜线后面跟的是选项字段
  • 如果选项值中存在空格,使用单引号或者双引号将他们包起来,看下面的例子了解更多。
/option:value

  以下为有效的选项。

3.1显示版本信息

-version

  这个选项显示了Kettle核心二进制文件(kettle.jar)的版本。也显示了编译版本号以及编译时间等等。

3.2启动XML文件

-file=filename

  这个选项启动定义好的XML文件(.ktr:Kettle的转换文件)

3.3命名参数

-param

  你可以命名一个参数并赋值,举个例子:-param:FOO=value

-listparam

   列出制定指定转换中所有的命名参数(名字,默认值以及描述)

3.4设置日志文件

-log=Logging Filename

  指定日志文件,默认是标准输出。

3.5设置日志等级

-level=Logging Level

  这个等级选项可以设置在运行转换的日志等级。以下是可以取的值:

  • Error:只显示错误信息
  • Nothing:不做任何日志输出
  • Minimal:仅仅最小输出
  • Basic:基本信息输出,默认日志级别
  • Detailed:详细日志输出
  • Debug:调试使用,非常详细
  • RowLevel:行级别日志,会产生大量日志

3.6选择一个资源库

-rep=Repository name

  使用资源库名字连接至资源库,同时你也需要指定下面的操作选项  --user , --pass 以及 --trans 。你也可以在环境变量中指定 KETTLE_REPOSITORY 这些操作选项值。

3.7设置资源库的用户名

-user-Username

  这个是你想要连接的资源库的用户名,你也可以在环境变量中指定 KETTLE_USER。

3.8设置资源库密码

-pass=Password

  这是你想连接的资源库的用户密码,同样你也可以在环境变量中指定 KETTLE_PASSWORD。

3.9选在资源库中的转换启动

  

-trans=Transformation Name

  利用这个操作选项可以选择资源库中的转换。

3.10列出资源库中所有目录

-listdir=Y

  在使用 -dir 时,打印出资源库目录下所有子目录。

3.11设置资源库目录

-dir=directory

  指定资源库目录,资源库目录可以像是这样的:

  • 根目录:/
  • 子目录:/production/Dimensions/

  从2.2.2版本开始,分隔符 / 可以被用到各种平台。

3.12列出资源库下所有转换

-listtrans=Y

  在使用 -dir 时,列出资源库目录下所有的转换。

3.13列出所有可用的资源库

-listrep=Y

  列出所有的已经定义的资源库

3.14导出整个资源库

-exprep=filename.xml

  这个操作选项导出整个资源库至一个XML文件,回复成资源库需要使用Spoon的资源库管理器,详情参见Spoon文档。

3.15日志禁止写入资源库

-norep=Y

  如果你已经设置了环境变量 KETTLE_REPOSITORY, KETTLE_USER, KETTLE_PASSWORD, 你可以阻止 pan 将日志写入到资源库。举个例子,如果你想执行一个xml文件格式的转换。

4.路径 

  在运行以下例子之前,请确保你在data-integration目录下。如果你将这些脚本文件放到批处理或者shell脚本中,将会很容易修改目录为安装目录。
  如果data-integration被安装在 D:\ drive

D:

cd \data-integration

  如果data-integration 被安装在Unix系统的 /product 目录下:

cd /product/data-integration/

5.从文件运行转换

  从windows平台运行一个转换文件

pan.bat /file:"D:\Transformations\Customer Dimension.ktr" /level:Basic

  在Linux平台上运行一个转换文件

pan.sh -file="/PRD/Customer Dimension.ktr" -level=Minimal

6.从资源库运行一个转换

  这个例子是在Windows平台从资源库运行一个转换(一行输入没有返回...)

复制代码
pan.bat /rep:"Production Repository"
            /trans:"update Customer Dimension"
            /dir:/Dimensions/
            /user:matt
            /pass:somepassword123
            /level:Basic
复制代码

7.重定向输出

  如果你不想输出出现在屏幕,更想输出到日志文件,你可以使用重定向。这个例子添加pan的输出到一个不断增长的日志文件。

pan.sh -file="/PRD/trans.ktr" -level=Minimal >> /LOG/trans.log

  这个例子将pan输出每次重写进文件

pan.bat /file:C:\PRD\trans.ktr /level:Basic > C:\LOG\trans.log

8.返回码

  pan 基于异常事件返回相应的错误码:

  • 0:转换运行正常
  • 1:处理过程中出错
  • 2:在加载/运行转换过程中发生意外错误
  • 3:无法解析和初始化此转换
  • 7:无法从XML或资源库加载转换
  • 8:加载步骤或插件时出错(主要是加载其中一个插件时出错)
  • 9:Command line usage printing 

9.定时调度(scheduling)

9.1在windos平台上定时调度转换

  最好的方法是先在DOS提示符下测试命令。然后,您可以使用Windows任务调度程序启动此命令。Windows 2000版本之后有一个GUI,通过控制面板可以做到这一点。它也可以使用命令行来做这个:

at 23:30 /every:Monday,Wednesday,Friday "D:\update_dimensions.bat"

  查看定时调度命令清单(To see a list of the scheduled commands simply type):

at

9.2在Unix平台上定时调度一个转换

  首先创建一个shell脚本来运行所有的转换,然后你只需要定时调度运行这个shell脚本就可以了。

  在Unix平台最简单的定时调度命令方式是使用cron 表达式,你可以使用下面的命令:

crontab -e

  然后你可以在命令中输入你要运行的时间(Then you can enter the time at which the command needs to be run as well as the command
on a single line in the text file that is presented)

  • Minute:分钟,0-59
  • Hour:小时,0-23
  • Month day:天,1-31
  • Month:月, 1-12
  • Weekday:周, 0-6, 0=星期天

  你可以为每一个参数指定一个数字以上的值,两个数字使用连字符 - 分隔起来,这意味着是一个数字范围。如果你使用逗号分隔两个数字,这意味着可以取不同的值。如果你使用 * 代替一个数字,意味着可以取任意的小时、分钟、天、月或者周。

  因此,如果你想在每周工作日每个小时在15分和45分时更新dimensions ,可以输入下面的cron命令:

#
# Launches the update of the dimensions in the warehouse
#
15,45 * * * 1-5 /PROD/update_dimensions.sh
#
posted @ 2022-03-15 09:59  疯子110  阅读(1177)  评论(0编辑  收藏  举报