kettle使用手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1打开程序,点击spoon.bat
其实对于简单的数据库数据的抽取,基本只需要转换(.ktr格式)和作业(.kjb格式)这两种东西。下面就是建立一个转换的步骤:
a 点击文件-->新建-->转换。
b 在左侧的树状列表中选“主对象树”,新建DB连接(参照第4点)。
c 在核心对象-->输入这个地方拖出一个表输入,在“输出”目录下拖出“表输出”,按住shift,从一个对象拖到另一个对象可进行连线。
2基本作业由开始,转换,成功3步骤组成。步骤之间使用shift+左键连线。
2.1‘1’代表无条件执行;
2.2‘2’代表上一步执行完成后,再执行下一步;
2.3‘3’代表不执行,左击连接线使其生效(绿色)或失效(灰色)。
3打开具体步骤中的转换流程,点击‘Transformation’跳转至相应具体转换流程,
编辑此转换具体路径,双击转换,弹出窗口,‘1’为相对路径,点击‘2’选择具体Visit.ktr转换,为绝对路径。
4建立数据库连接,输入相应信息测试,成功即可
图4
5转换具体设置,如图4,‘表输出’至‘文本文件输出’流程跳接线为错误处理步骤,当输出格式不能满足表输出的目的表结构类型时,将会将记录输出到‘文本文件输
出’中的记录中。
5.1双击‘表输入’,输入相应的SSQL语句,选择配置数据库连接,或新增,预览
查询生成的结果(如果数据库配置中使用变量获取,此处预览生成错误)。
5.2双击‘表输出’,选择数据库连接,‘浏览’选择相应目标表,(此处‘使用批量
插入’勾选去除,目的是在错误处理步骤中无法使用批量处理,可能是插件兼
容问题)
6表输出插件定义
a) Target Schema:目标模式。要写数据的表的Schema的名称。允许表明中包含“。”对数据源
来说是很重要的
b) 目标表:要写数据的表名。
c) 提交记录数量:在数据表中用事物插入行。如果n比0大,每n行提交一次连接。否则不使用
事务,速度会慢一些。
d) 裁剪表:在第一行数据插入之前裁剪表。
e) 忽略插入错误:使Kettle忽略比如违反主键约束之类的插入错误,最多20个警告将被日志记
录。在批量插入的时候这个功能不可用。
f) 使用批量插入:这个选项速度快,默认被选上。
g) 表分区数据:使用这个选项可以在多个表之间拆分数据。例如把数据放到表s1、s2、s3中来
代替直接插入数据到表s中。
h) 例如:create or replace view sales as
1. Select* from sales_200501
2. Unionall
3. Select* from sales_200502
i) 表名定义在一个字段里:使用此选项可以拆分数据到一个或者多个表里,目标表名可以用你指
定的字段来定义。例如:如果你想存储客户性别数据,这些数据可能会存储到表M和表F里
面。这个选项可以阻止这些字段插入到相应的表里。
j) 返回一个自动产生的关键字:往表中插入行时,是否产生一个关键字。
k) 自动产生关键字的字段名称:指定包含关键字的输出字段的字段名称。
7执行任务,
Windos:bat批处理文件,
Linux:sh批处理文件,
Kitchen——作业执行器是一个作业执行引擎,用来执行作业。这是一个命令行执行工具,没啥可讲的,就把它的参数说明列一下。
-rep : Repository name 任务包所在存储名
-user : Repository username 执行人
-pass : Repository password 执行人密码
-job : The name of the job to launch 任务包名称
-dir : The directory (don''t forget the leading / or \)
-file : The filename (Job XML) to launch
-level : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志级别-log : The logging file to write to 指定日志文件
-listdir : List the directories in the repository 列出指定存储中的目录结构。
-listjobs : List the jobs in the specified directory 列出指定目录下的所有任务
-listrep : List the defined repositories 列出所有的存储
-norep : Don''t log into the repository 不写日志
嗯,居然不支持调度。看了一下文档,建议使用操作系统提供的调度器来实现调度,比如:Windows 可以使用它的任务计划工具。Linux使用crontab服务。
Kettle定时功能。
在Job下的start模块,有一个定时功能,可以每日,每周等方式进行定时,对于周期性的ETL,很有帮助。
a.使用资源库(repository)登录时,默认的用户名和密码是admin/admin。
b.当job是存放在资源库(一般资源库都使用数据库)中时,使用Kitchen.bat执行job 时,需使用如下的命令行:
Kitchen.bat /rep kettle /user admin /pass admin /job job名