1、ETL 工具kettle 使用说明1 简介ETL(Extract-Transform-Load 的缩写,即数据抽取、转换、装载的过程) ,Kettle 是一款国外开源的 etl 工具,纯 java 编写,数据抽取高效稳定。2 运行环境:OS:Window、Linux、Unix 均可Jdk1.4 以上3 开始使用:Kettle可以在http:/kettle.pentaho.org/网站下载。下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可。(本文着重介绍 kettle3.2.0 稳定版 )Spoon 是一个图形用户界面,在不同平台上运行Spoon需要不同的脚本:Spoo
2、n.bat: 在windows 平台运行Spoon(或直接点击Kettle.exe)。Spoon.sh: 在Linux、Apple OSX、Solaris 平台运行Spoon。登陆一般选择没有资源库:Kettle中有两种脚本文件,transformation 和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。4 转换(Transformation) 新建一个转换kettle默认transformation文件保存后后缀名为ktr 新建数据库连接(此链接也可在用到的节点处配置)填写数据源配置内容点击Test测试连接成功: 核心对象切换到核心对象,菜单列出
3、的是Transformation中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。并且可通过shift+鼠标拖动,实现环节之间的连接。常用节点介绍(红色节点后面逐一演示)类别 环节名称 功能说明 文本文件输入 从本地文本文件输入数据 表输入 从数据库表中输入数据 输入 获取系统信息 读取系统信息输入数据 文本文件输出 将处理结果输出到文本文件 表输出 将处理结果输出到数据库表 插入/更新 根据处理结果对数据库表机型插入更新,如果数据库中不存在相关记录则插入,否则为更新。会根据查询条件中字段进行判断 更新 根据处理结果对数据库进行更新,若需要更新的数据在数据库表中无记录,则会报错停止
4、输出 删除 根据处理结果对数据库记录进行删除,若需要删除的数据在数据库表中无记录,则会报错停止数据库查询 根据设定的查询条件,对目标表进行查询,返回需要的结果字段 流查询 将目标表读取到内存,通过查询条件对内存中数据集进行查询 查询 调用DB存储过程 调用数据库存储过程 字段选择 选择需要的字段,过滤掉不要的字段,也可做数据库字段对应过滤记录 根据条件对记录进行分类排序记录 将数据根据某以条件,进行排序空操作 无操作转换 增加常量 增加需要的常量字段脚本 Modified Java Script Value扩展功能,编写JavaScript脚本,对数据进行相应处理映射 映射(子转换) 数据映射
5、Sat Variables 设置环境变量作业 Get Variables 获取环境变量 表输入双击拖动到工作面板上的表输入结点,选择(或者新建)所需要的数据库连接,点击获取SQL查询语句或自行编辑SQL。若需根据前一步获取数据进行查询,可用“?”号代替,变量顺序与前一节点相同 字段选择界面如下:选择和修改:指定需要流到输出流中的字段的精确顺序和名称删除:指定从输出流中删除的字段(以后输出流将不会获取到此数据)元数据:修改元数据字段的名称、类型、长度和精度 插入/更新如下图,表示当原表的id=new_test.id时,比较createdate和account,若不同就进行更新,如果没有此id就插
6、入该数据 运行Transformation:一个简单的Transformation如下:这里可以不用配置直接启动执行结果中可以查到执行步骤以及输出日志5 任务(Job) 新建一个Jobkettle默认job文件保存后后缀名为kjb 核心对象菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。每一个环节可以通过鼠标拖动来将环节添加到主窗口中。并可通过shift+鼠标拖动,实现环节之间的连接。常用节点介绍(红色节点后面逐一演示)类别 环节名称 功能说明START 开始DUMMY 结束Transformation 引用Transformation流程Job 引用Job流程Shell 调用Shell脚本SQL 执行sql语句FTP 通过FTP下载Mail 发送邮件