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