• 1. Kettle 培训 BI 数据部 Jim 2011年03月27日
  • 2. Kettle 培训内容Kettle 功能与产品介绍 Kettle 控件介绍 Kettle 案例演示 Kettle 调度
  • 3. Kettle介绍Kettle 是一款开源的、元数据驱动的ETL工具集,是开源 ETL 工具里功能比较强大的一个。 Kettle 是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计 用来帮助你实现你的ETTL 需要:抽取、转换、装入和加载数据;翻译成中文名称应该叫水壶,名字的起源正如该项目的主程序员MATT 在一个论坛里说的哪样:希望把各种数据放到一个壶里然后以一种指定的格式流出。
  • 4. Kettle 四大家族Pantaho产品线 Reporting、Data Mining、Analysis、Dashboards、Data Integration Kettle家族目前包括4个产品: Spoon、Pan、Chef、Kitchen。 Chef—工作(job)设计工具 (GUI方式) Kitchen—工作(job)执行器 (命令行方式) Spoon—转换(transform)设计工具 (GUI方式) Span—转换(transform)执行器 (命令行方式)
  • 5. Kettle 四大家族 SPOON允许你通过图形界面来设计ETL转换过程(Transformation)。例如,从一个SAP系统抽取数据,并把这些数据存储到一个文件里的转换任务如下: PAN允许你批量运行由Spoon设计的ETL转换(例如使用时间调度器)。Pan是一个后台执行的程序,没有图形界面。 CHEF允许你创建任务(JOB)。任务通过允许每个转换、任务、脚本等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换、任务、脚本等。任务将会被检查,看看是否正确运行了。(下面是一个chef的任务图)。   
  • 6. Kettle 四大家族KITCHEN允许你批量使用由Chef设计的任务(例如使用一个时间调度器)。KITCHEN是一个后台运行程序。 Job和Transformation的差别:Transformation专注于数据的ETL,而Job的范围比较广,可以是Transformation,也可以是Mail、SQL、Shell、FTP等,甚至可以是另外一个Job。
  • 7. Kettle 的安装要运行此工具你必须安装Sun 公司的JAVA 运行环境1.4 或者更高版本,相关资源你可以到网络上搜索JDK 进行下载 绿色免安装,解压即可用。 在不同的平台上运行Spoon 所支持的脚本: Spoon.bat: 在windows 平台运行Spoon。 Spoon.sh: 在Linux、Apple OSX、Solaris 平台运行Spoon。
  • 8. Kettle转化功能介绍 1Kettle 中有两种脚本文件,transformation (.ktr)和 job(.kjb),transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。 所有功能支持控件化,使用简单 支持多样化数据源类型: 基本的文本文件 Access、Excel、XML、Property文件格式 MDX查询语言、 Cube文件、Streaming XML数据流 自动产生空记录或者行 从XBase类型文件(DBF)读取数据 关系型数据库 获取系统信息如文件名称、系统时间等
  • 9. Kettle转化功能介绍 2特殊目标数据源支持 把数据写入到Cube 把数据写入XML 支持多种查询 调用数据库存储过程 基本的数据库查询 判断表以及列、操作系统文件是否存在 从URL接收查询 使用Web服务查询信息 使用数据流中的值作为参数来执行一个数据库查询 流查询:从转换中其他流里查询值 转换功能 值映射、分组、去重、拆分字段、行列转换 复制行
  • 10. Kettle转化功能介绍3支持的脚本 JS脚本 SQL脚本 正则表达式 支持渐变维度更新 批量加载: Greenplum Bulk Loader Oracle Bulk Loader MSSQL Bulk Loader MYSQL Bulk Loader PostgreSQL Bulk Loader 支持分区表和集群
  • 11. Kettle作业功能介绍 1可以执行操作系统命令和操作: Ping 主机 写日志 发送邮件 从POP Server获取邮件并保存在本地 比较文件夹、文件 创建、复制、移动、删除、压缩文件 从HTTP获取或者上传文件 操作延迟等待
  • 12. Kettle作业功能介绍 2判断文件是否存在 执行JavaScript、SQL、Shell脚本 支持安全FTP获取、上传文件 删除远程文件 支持SSH2上传下载
  • 13. 数据库连接类型和访问类型支持的数据库连接类型,截图如下, 有些数据库类型需要完善jar包,以确保数据库能够正确连接
  • 14. 访问类型数据库访问类型支持如下几种: JDBC OCI ODBC JNDI
  • 15. Kettle实施步骤双击运行 kettle 文件夹下的 Kettle 文件,出现 kettle 欢迎界面。 创建资料库(可省略) 创建数据库连接 创建转换 创建Jobs,进行流程化控制
  • 16. Kettle案例案例描述: 把文本文件中的格式化数据导入到oracle数据库的指定表中
  • 17. 打开Kettle 选择没有资料库
  • 18. 创建数据库连接创建数据库连接
  • 19. 输入数据源连接名称,选择数据源类型和访问方式
  • 20. 输入服务器主机名和数据库名称
  • 21. 输入数据表空间和索引表空间名称
  • 22. 输入用户名和密码
  • 23. 测试数据库连接
  • 24. 数据源建立成功
  • 25. 右击转换,新建出现如下界面创建转换
  • 26. 从左侧输入栏目中选择文本文件输入控件,拖拽到右侧工作空间中
  • 27. 从输出栏目拖拽表输出控件到左侧工作区
  • 28. 选中两个控件,在其中一个控件上右击,选择新建节点连接
  • 29. 选择起始步骤
  • 30. 双击文本文件输入控件,进行编辑
  • 31. 文本文件“内容”标签编辑
  • 32. 点击获取字段按钮,可自动获取字段名称,然后编辑相关属性,预览记录。
  • 33. 编辑输出表控件属性
  • 34. 然后点击绿色按钮,启动转换
  • 35. 保存转换
  • 36. 可以查看执行结果
  • 37. 可以加入执行SQL脚本
  • 38. 在核心对象中有很多控件可用来实现数据的ETL功能。
  • 39. 创建作业从左侧通用栏目中拖拽两个控件
  • 40. 双击Transformation 1进行编辑
  • 41. (本页无文本内容)
  • 42. 保存jobs后执行任务
  • 43. Kettle 调度利用Kitchen工具实现作业的调用 Kitchen.bat /file:D:\job_name.kjb /level:Basic
  • 44. 总结Kettle的功能非常强大,数据抽取效率也比较高,开源产品,可以进行第三方修改,工具中的控件能够实现数据抽取的大部分需求。 所有功能支持控件化,使用简单 Kettle目前还不是特别稳定,并且发现的BUG也特别多