• 1. 张辉
  • 2. Kettle使用-ETL&KettleETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于各个企业来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。 Kettle(PDI)是一款国外开源的etl工具,纯java编写,绿色无需安装,支持WINDOWS、LINUX等各种平台,数据抽取高效稳定。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制,hop: Transformation hop:主要表示数据的流向。从输入,过滤等转换操作,到输出。 Job hop:可设置执行条件:( 无条件执行;当上一个Job执行结果为true时执行;当上一个Job执行结果为false时执行) Kettle 是BI数据仓库解决方案Pentaho的组件之一。
  • 3. Kettle整体结构图
  • 4. Kettle使用-下载&部署Kettle可以在http://kettle.pentaho.org/ 或 http://sourceforge.net/projects/pentaho/files/ 网站下载 下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可
  • 5. Kettle使用-运行进入到Kettle目录,如果Kettle部署在windows环境下,双击运行spoon.bat文件;LINUX 下运行spoon.sh 则出现如下界面
  • 6. Kettle使用-资源库资源库是Kettle存储转化、作业的信息库。 资源库分为文件资源库 和 数据库资源库。 文件资源库以文件形式保存转化和作业。 数据库资源库将转化和作业保存在数据库表中。 新建或更新资源库,Kettle则会在数据库(文件系统)创建资源库表(文件)。
  • 7. Kettle使用-ktr&kjbKettle对象主要包括: 1.转化(Transformation) 数据流处理,负责基础数据转换;可以理解为将一个或者多个不同的数据源组装成一条数据流水线。然后最终输出到某一个地方,文件或者数据库等。若文件资源库,默认保存后缀名ktr。使用pan(pan.bat 或pan.sh)运行转化。 2.左右(Job) 工作流处理,负责工作流程控制,可以调度设计好的转换,也可以执行一些文件处理(比较,删除等),还可以ftp上传,下载文件,发送邮件,执行shell命令等, ;默认保存后缀名ktb。使用kitchen运行左右。
  • 8. Kettle使用-TransformationMain Tree菜单列出的是一个transformation中基本的属性,可以通过各个节点来查看。 DB连接:显示当前transformation中的数据库连接,每一个transformation的数据库连接都需要单独配置。 Steps:一个transformation中应用到的环节列表 Hops:一个transformation中应用到的节点连接列表
  • 9. Kettle使用-TransformationCore Objects菜单列出的是transformation中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。 Input:输入环节 Output:输出环节 Lookup:查询环节 Transform:转化环节 Joins:连接环节 Scripting:脚本环节
  • 10. Kettle使用-Transformation每一个环节可以通过鼠标拖动来将环节添加到主窗口中。 并可通过shift+鼠标拖动,实现环节之间的连接。 命令行执行:pan.bat /rep:"kettle_metadata" /user:admin /pass:admin /trans:"ktr_learning_join2"
  • 11. Kettle使用-Transformation常用环节介绍(详细介绍请见《ETL工具学习总结》) 类别 环节名称 功能说明 Input 文本文件输入 从本地文本文件输入数据 表输入 从数据库表中输入数据 获取系统信息 读取系统信息输入数据 Output 文本文件输出 将处理结果输出到文本文件 表输出 将处理结果输出到数据库表 插入/更新 根据处理结果对数据库表机型插入更新,如果数据库中不存在相关记录则插入,否则为更新。会根据查询条件中字段进行判断 更新 根据处理结果对数据库进行更新,若需要更新的数据在数据库表中无记录,则会报错停止 删除 根据处理结果对数据库记录进行删除,若需要删除的数据在数据库表中无记录,则会报错停止Lookup 数据库查询 根据设定的查询条件,对目标表进行查询,返回需要的结果字段 流查询 将目标表读取到内存,通过查询条件对内存中数据集进行查询 调用DB存储过程 调用数据库存储过程 Transform 字段选择 选择需要的字段,过滤掉不要的字段,也可做数据库字段对应过滤记录 根据条件对记录进行分类排序记录 将数据根据某以条件,进行排序空操作 无操作增加常量 增加需要的常量字段Scripting Modified Java Script Value扩展功能,编写JavaScript脚本,对数据进行相应处理Mapping 映射(子转换) 数据映射Job Sat Variables设置环境变量Get Variables获取环境变量
  • 12. Kettle使用-Transformation转换参数、日志、监控 参数:可以从父组件接收参数,并传递给子组件和以后组件 日志、监控:可设置日志和监控数据存储至数据库中。
  • 13. Kettle使用-Transformation影响分析 可以分析当前转化所依赖的数据库对象、文件对象等等,为对象变更提高参考条件
  • 14. Kettle使用-Job菜单介绍 Main Tree菜单列出的是一个Job中基本的属性,可以通过各个节点来查看 DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置。 Job entries:一个Job中引用的环节列表
  • 15. Kettle使用-Job菜单介绍 Job entries菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动方式对环节进行添加。 每一个环节可以通过鼠标拖动来将环节添加到主窗口中。 并可通过shift+鼠标拖动,实现环节之间的连接。 命令行执行:kitchen.bat /rep:"kettle_metadata" /user:admin /pass:admin /trans:"ktr_learning_join2"
  • 16. Kettle使用-Job常用环节介绍(详细介绍请见《ETL工具学习总结》)类别环节名称功能说明Job entriesSTART开始DUMMY结束Transformation引用Transformation流程Job引用Job流程Shell调用Shell脚本SQL执行sql语句FTP通过FTP下载Table exists检查目标表是否存在,返回布尔值File exists检查文件是否存在,返回布尔值Javascript执行JavaScript脚本Create file创建文件Delete file删除文件Wait for file等待文件,文件出现后继续下一个环节File Compare文件比较,返回布尔值Wait for等待时间,设定一段时间,kettle流程处于等待状态Zip file压缩文件为ZIP包
  • 17. Kettle使用-Job参数、日志 参数:可以从父组件接收参数,并传递给子组件和以后组件 日志、监控:可设置日志和监控数据存储至数据库中。
  • 18. ETL集群Kettle 使用carte.bat 或carte.sh启动子服务器。 命令:carte 127.0.0.1:8010 在spoon中创建子服务器。 在spoon中创建服务器schema。
  • 19. ETL集群Tranformation使用ETL集群 右键点击转化组件,选择集群菜单,选择集群服务器
  • 20. Kettle实例演示描述:从数据库DB_1抽取员工销售数据、统计到数据库DB_2中。 步骤: 先从DB_1抽取基础数据(EMP,SALES,CUSTOMERS)到ODS 判断基础表数据正常,再进行关联、转化 统计数据到结果表。 实现
  • 21. Kettle问题1.未完全支持调度 windows使用scheduler调度 linux使用cron调度
  • 22. 谢 谢