Kettle调度和监控

时间:2024-03-31 12:33:05

Kettle调度和监控的理论知识介绍,具体内容如下:

1 调度

在这个指导文档中,主介绍两种类型Kettle任务和转换的调度方式。

Ø 操作系统级别的调度器:对于ETL来说,调度不是独一无二的。这是操作系统能够提供标准调度的一般性需要,如UNIX衍生系统上的Cron以及Windows系统上的任务调度器。这些调度器能够拥戴调度Kettle命令行程序来运行任务和转换。

Ø Quartz调度器构建成Pentalo BI服务器:Kettle作为Pentalo BI栈的一部分,许多Kettle 用户可能也使用或者熟悉Pentalo BI服务器。调度器构建成Pentalo BI服务器能够被用来运行一系列执行Kettle任务和转换工作。

所有主要操作系统提供了构建调度任务的特性,这些被任务能够被作为系统级别的调度器来调度。下面,主要来介绍如何使用命令行来运行Kettle 任务和转换。

1.1 命令行执行Kettle任务和转换

使用Kitchen和Pan命令行工具能够启动Kettle任务和转换。Pan和Kettle是环绕数据集成引擎的轻量级封装器(lightweight wrappers)。Kitchen 和 Pan是使用shell scripts运行任务和转换的,比如在Windows环境中Kitchen.bat 和Pan.bat。在Linux环境下,对应的运行脚本是Kitchen.sh 和Pan.sh。

一般命令行参数能够按如下分类:

  • 指定job 和transform
  • 控制日志
  • 指定仓库(repository)
  • 列出有效的仓库和它们的内容。

Kettle 和Pan一般命令行参数列表

名称

介绍

norep

不连接到任何一个repository,避免自动登录很有用。

rep

仓库名称

连接到指定名称的仓库

user

仓库的用户名

指定用户名来连接到指定的仓库

pass

仓库的密码

使用指定的密码来连接到指定的仓库

listrep

显示有效的仓库

dir

路径

指定仓库的路径

listdir

列出有效的仓库job/transform路径

file

文件名

指定存储了job或者transform的文件

level

日志级别

Error | Nothing |Basic | Detailed |Debug | Rowlevel

logfile

日志的文件名

指定日志的文件名称

version

显示版本,校订号和工具的构建日期

注意:dir and listdir parameters are dependent upon the tool. For Kitchen,theseparameters refer to the repositories’ job directories, or totransformation directories in the case of Pan.

Kettle命令行参数指定

名称

介绍

job

Job名称

指定存储在仓库中job的名称

listjobs

通过dir参数列出存在于仓库中有效jobs

Kettle命令行参数的代码实例。

#

# list all available parameters

#

kettle-home> ./kitchen.sh

#

# run the job stored in

# /home/foo/daily_load.kjb

#

kettle-home> ./kitchen.sh \

> /file:/home/foo/daily_load.kjb

#

# run the daily_load job from the

# repository named pdirepo

#

kettle-home> ./kitchen.sh/rep:pdirepo \

> /user:admin \

> /pass:admin \

> /dir://job:daily_load.kjb

1.2 基于UNIX系统:cron

对于UNIX派生的系统中,cron功能是很好的job调度器。你没有必要安装其它任何工具使其有效运行。

Cron字符串定义有5个日期/时间域值,以空白空间分割,从左到右,日期时间域如下:

lminutes: 0–59

lhours: 0–23

lday of month: 1–31

lmonth: 1–12

lday of week: 0–6, where 0 denotesSunday, 1 Monday, and so on

举例说明:

0 1 ? * 5run_kettle_weekly_invoices.sh

上面的例子,表示“每天的星期五的一点”运行这个kettle脚本。


1.3 使用Pentaho 构建Scheduler

需要使用Pentaho BI Server, 更多的信息,参考web资源

2 监控

2.1 邮件通知

Kettle中有两种方式监控job或者transform的运行情况。每个job中的transform都可以配置对应的日志(如下图)。

Kettle调度和监控

Kettle调度和监控

具体的配置请参考说明文档。邮件组件相对而言,更简单,这里就不详细

2.2 日志表

大部分Kettle组件能够输出以文本行的形式的日子信息.例如,当一个步骤完成, 一行信息显示了这个事件。

2010/06/1810:36:29 - Step name.0 -Finished processing (I=0, O=0, R=0, W=25, U=0, E=0)

你会发现日志是由以下几部分组成:

Ø日期和时间

Ø步骤名称,显示在日期和时间之后

Ø日志文本

Ø这些部分已空白、破折号和横线分割

下面列举Kettle的日子级别:

Rowlevel: 答应所有在Kettle中的有效日志,包括在大量复杂步骤的信息;

Debugging: 产生大量的日志信息,主要用于调试,但是不是在行级别(row level);

Detailed:允许用户看到比基本日志级别更富比较性的信息,额外的信息实例包括SQL查询语句和一般的DDL都会产生。

Basic:默认的日子级别;仅仅打印这些能够反映在步骤或者任务条目上的信息。

Minimal:通知你仅仅关于一个任务或者转化的信息。

Errorlogging only: 如果那儿有一个错误,显示错误消息;否则,什么都不显示。

Nothingat all: 即使当有错误存在的时候,不要产生任何日志。

转换日志表

在转换日志表级别,有四个日志表能够被更新。

l 转换日志表

l 步骤日志表

l 性能日志表

l 日志管道表

在转换的结尾,一个转换过程的默认行为就是写日志到日志表里。

转换日志表

点击右键,在弹出框中选择。弹出转换过程的属性设置。

Kettle调度和监控

设置内容如下图所示:

Kettle调度和监控

Transformation 日志表属性设置

在左边的面板,你看到不同的你能够定义的日子表。下面有具体参数描述:

  • Log Connection: 存储目标日志表的数据库名称,从选择下滑键中,你可以选择存在的数据库定义的名称。
  • Log table schema: 包含日志表的数据库体系结构。
  • Log table name: 日志表的名称
  • Logging interval (seconds): 在转换运行过程中,根据这个选择参数值间歇地写信息到日志表中。如果你没有指定这个参数值,日志表将仅仅只能在转换开始和完成时被更新。
  • Log record timeout (in days):在它插入一个新值之前,根据这个参数值来来删除日志表中老的记录。
  • Log size limit in lines: 对于不支持大字符字段的数据库,日志限定了这个文本的大小。

依次类推,设置步骤日志表、性能日志表、日志管道表。另外,同转换日志表相似,你也可以设置任务日志表,设置方式基本一致。