1、数据导入与预处理应用-第二章Kettle工具的初步使用目录0102Kettle的安装Kettle使用简介内容简介本章首先介绍Kettle工具的安装及基本概念,然后通过一个案例实操介绍Kettle工具的使用。本章重要的内容如下:Kettle的安装Kettle的安装转换的基本概念可视化编程及调试Kettle的安装定时启动转换123401Kettle的安装Kettle的安装Kettle开源JAVA编写多平台可视化Kettle的安装Kettle 的特点可视化丰富的工具类支持各类数据源除了支持各种关系型数据库,HBase MongoDB这样的NoSQL数据源外,还支持Excel、Access这类小型的数
2、据源强大的处理功能除了选择、过滤、分组、连接和排序这些常用的功能外,还支持Java表达式、正则表达式、java脚本、Java类、python等代替了完成数据转换任务的手工编码,降低了开发难度包含数据的剖析、清洗、校验、抽取、转换和加载等各类常见的ETL类支持多平台开源免费开源,良好的社区支持可以在Window、Linux、Unix上运行Java的安装 登录Java的官网后,进入到下载页面:http:/ FilesJavajdk-10。Java的安装Java的安装Java环境变量的配置环境变量名称环境变量值配置方式JAVA_HOMEC:Program FilesJavajdk-10(注:此为安装
3、路径)新建CLASSPATH.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar新建Path.;%JAVA_HOME%bin;%JAVA_HOME%jrebin追加Java的安装右键点击“我的电脑”,在弹出的选项栏中点击“属性”Java的安装点击“高级系统设置”。Java的安装点击“环境变量(N)”。Java的安装点击“系统变量(S)”栏目下的“新建(W)”。Java的安装 以新建的方式配置JAVA_HOME环境变量。在“变量名(N):”填入JAVA_HOME,在“变量值(V):”填入C:Program FilesJavajdk-10。填写完毕后,点击“
4、确定”完成新建环境变量JAVA_HOME的配置。Java的安装参考JAVA_HOME环境变量的配置操作完成CLASSPATH环境变量的配置。CLASSPATH环境变量的值为.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar,填写完毕后,点击“确定”,完成新建环境变量CLASSPATH的配置。Java的安装在“系统变量(S)”栏目中,点击Path环境变量,接着点击“编辑(I)”按钮,以追加的方式开始配置Path环境变量。Java的安装在“编辑环境变量”弹框中,点击“新建(N)”按钮Java的安装在光标位置,增添.;%JAVA_HOME%bin;%JAVA
5、_HOME%jrebin,点击“确定”完成Path的配置。配置完毕后,点击所有弹框的“确定”按钮,关闭所有弹框,返回到桌面。Java的安装在命令窗口中输入java version和javac命令,有如下输出提示,则Java的环境变量配置正确。Kettle的下载安装与spoon启动 Kettle作为一个独立的压缩包发布,可以从https:/ Windows桌面快捷方式。创建快捷方式后,右键单击新创建的快捷文件,在弹出菜单中选择属性。打开的属性对话框里显示了快捷方式标签。在这个标签下“更改图标”按钮可以为这个快捷方式选中一个容易识别的图标,一般选择 Kettle目录下的spoon.ico文件。Ke
6、ttle的下载安装与spoon启动修改spoon.bat的图标02Kettle的使用简介Kettle的使用简介 转换是ETL解决方案中最主要的部分,它负责处理抽取、转换、加载各阶段对数据行的各种操作。转换包括一个或多个步骤,如读取文件、过滤输出行、数据清洗或将数据加载到数据库。转换里的步骤通过跳来连接,跳定义了一个单向通道,允许数据从一个步骤向另一个步骤流动。在Kettle里,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。数据流的另一个同义词就是记录流。除了步骤和跳,转换还包括了注释,注释是一个小的文本框,可以放在转换流程图的任何位置。注释的主要目的是使转换文档化。转换的基本概
7、念转换的基本概念步骤是转换里的基本组成部分。它是一个图形化的组件,可以通过配置步骤的参数,使得它完成相应的功能。例子显示了两个步骤,分别为“表输入”和“Microsoft Excel 输出”。配置“表输入”步骤的参数,可以使得这个步骤从指定的数据库中读取指定关系表的数据;配置“Microsoft Excel 输出”步骤的参数,可以使得这个步骤向指定的路径创建一个Excel表格,并写入数据。当这两个步骤用跳(箭头连接线)连接起来的时候,“表输入”步骤读取的数据,通过跳,传输给了“Microsoft Excel 输出”步骤。最终,“Microsoft Excel 输出”步骤把“表输入”所读取的数据
8、,写入到Excel表格中。这个跳,对“表输入”而言,是个输出跳;对“Microsoft Excel 输出”而言,是个输入跳。转换的基本概念步骤的关键特性每个步骤都会读、写数据行(唯一例外是“生成记录”步骤,该步骤只写数据)步骤之间通过跳进行数据行的单向传输。大多数的步骤都可以有多个输出跳。一个步骤的数据发送可以被设置为轮流发送和复制发送。在运行转换时,一个线程运行一个步骤,所有步骤的线程几乎同时运行。除了具备有上面这些共性功能,每个步骤都有明显的功能区别,这可以通过步骤类型体现步骤需要有一个唯一性的名字转换的基本概念 转换的跳就是步骤之间带箭头的连线,跳定义了步骤之间进行数据传输的单向通道。从
9、程序执行的角度看,跳实际上是两个步骤线程之间进行数据行传输的缓存。这个缓存被称为行集,行集的大小可以在转换的设置里定义。当行集满了,向行集写数据的步骤将停止写入,直到行集里又有了空间。当行集空了,从行集读取数据的步骤停止读取,直到行集里又有可读的数据行。注意:因为在转换里每个步骤都依赖前一个步骤获取字段值,所以当创建新跳的时候,跳的方向是单向的,不能是双向循环的。转换的基本概念不可能定义一个执行的顺序,也不可能确定一个起点步骤和终点步骤。因为所有步骤都以并发方式执行:当转换启动后,所有步骤都同时启动。每个步骤从它的输入跳中读取数据,并把处理过的数据写到输出跳,直到输入跳里不再有数据,就中止步骤
10、的运行。当所有的步骤都中止了,整个转换就中止了程序角度功能角度转换有明确的起点步骤和终点步骤。例子中显示的转换起点就是“表输入”步骤(因为这个步骤生成数据行)。终点就是“Microsoft Excel 输出”步骤(因为这个步骤将数据写到文件,而且后面不再有其他节点)转换转换的基本概念字符类型数据IntegerBigNumberDateBinary数据以数据行的形式沿着步骤移动。一个数据行是零到多个字段的集合,字段包括的数据类型。BooleanStringNumber双精度浮点数带符号长整型(64位)任意精度数值带毫秒精度的日期时间值取值为true和 false的布尔值二进制字段可以包括图形、声
11、音、视频等转换的基本概念点击输入标题文字元数据名称数据类型长度掩码小数点分组符号初始步骤转换的基本概念 当设计转换时有几个数据类型的规则需要注意:01行级里的所有行都应该有同样的数据结构03默认情况下,空字符串(“)被认为与NUL相等02字段元数据不会在转换中发生变化第一个转换案例Kettle使用图形化的方式定义复杂的ETL程序和工作流,所以被归类为可视化编程语言。利用Kettle,可以快速构建复杂的ETL作业和降低维护工作量。由于Kettle通过组件的配置,隐藏了很多技术细节,使得IT领域更贴近商务领域。本节将介绍如何利用Kettle的可视化编程,实现例子中的转换。第一个转换案例 由于本案例
12、要从MySQL数据库中读取表格内容输出到Excel表格,还需要一个额外的jar包支持。该jar包的下载地址为https:/ Excel 输出”步骤,按住鼠标左键拖拽到画布中。第一个转换案例转换里的步骤通过跳定义一个单向通道来连接。点击“表输入”步骤,按住鼠标左键,将箭头一直拖到“Microsoft Excel 输出”,待箭头变成绿色时,松开鼠标左键,即可建立两个步骤之间的跳。注:右键点击跳的箭头符号,在菜单栏上选择相关的操作设置该跳的一些属性,包括“使节点连接时效”,“删除节点连接”等。第一个转换案例双击“表输入”步骤进行配置,在弹出的配置对话框中,点击“新建”按钮配置数据库的连接信息第一个转
13、换案例配置数据库连接第一个转换案例配置数据库连接后,“表输入”弹框中会显示新建的数据库连接第一个转换案例在“表输入”弹框中,点击“获取SQL语句”按钮,将弹出“数据库浏览器”第一个转换案例选择“学生”表后,“表输入”弹框会显示“学生”表的查询语句第一个转换案例选择预览的记录数量,点击“确定”后,将可以查看学生表的数据记录信息。此时,已完成了“表输入”步骤的配置。第一个转换案例双击“Microsoft Excel 输出”步骤进行配置。在弹出的配置对话框中,点击选定“文件&工作表”进行配置。第一个转换案例在“Microsoft Excel 输出”步骤的配置对话框中,点击选定“内容”进行配置。点击“
14、获取字段”按钮,获取上个步骤输出的数据字段。获取后,在“字段”的表格中,显示了已获取的字段。这些字段将在C:Users45812Desktopetlktroutfile.xlsx文件中输出。第一个转换案例点击开始运行程序,在弹出的对话框中,选择运行该程序。第一个转换案例执行完毕后,输出的文件保存在“Microsoft Excel 输出”步骤设置的路径下。该转换的输出路径及文件为C:Users45Desktopetlktroutfile.xlsx第一个转换案例对于Kettle而言,执行的一系列结果在右下方的“执行结果”状态栏中显示。也 就 是 说,“执行结果”状态栏是对转换、作业执行过程的监控。
15、第一个转换案例“日志”标签展示了该转换的时间执行过程。如果程序运行出错,将在这里显示具体的出错信息,设计者可根据错误信息调试程序。第一个转换案例“步骤度量”标签卡和“Metrics”标签卡,都展示了该转换执行过程中每一个步骤所耗费的时间。设计者可根据这些信息对所设计的转换进行优化,提升转换执行的效率。此外,“步骤度量”还展示了数据在每一个步骤的输入输出流程,设计者可根据这些信息核实数据的流程是否符合预定的设计流程第一个转换案例“Preview data”标签可预览该转换中鼠标已选定步骤的输出结果。第一个转换案例状态栏显示了一系列调试运行程序的按钮。运行暂停终止预览/调试重新执行第一个转换案例设
16、定调试的条件后,点击“配置”按钮进入调试模式。第一个转换案例在进行可视化编程的过程,每在画布上增添一个步骤,一个跳等,都会在主对象树中记录并呈现出来。设计者在检查程序设计时,可以在主对象树中,双击相关的对象进行编辑修改,实现对程序的调试。第一个转换案例Kettle的参数配置分为环境变量配置和命名参数两类。环境变量具有全局性质,配置后的环境变量对所有转换、作业都可用、有效;命名参数具有局部性质,仅对当前转换、作业有效。第一个转换案例环境变量的配置路径及文件为C:Users45812.kettlekettle.properties(45812表示此windows下的用户)。用文本编辑器打开kett
17、le.properties文件,即可用键值对的形式配置环境变量。一个环境变量占据一行,键在等号前面,作为配置所使用的环境变量名,等号后面就是这个环境变量的值。转换和作业可以通过$环境变量名或%环境变量名%的方式来引用kettle.properties定义的环境变量。第一个转换案例基于第一个转换实验的 配 置 例 子,配 置“Microsoft Excel 输出”步骤中的输出路径,用环境变量“GLOBAL_PATH”表示。配置kettle.properties完毕后,需要关闭再重新打开Kettle,配置的全局参数才生效可用。第一个转换案例在“Microsoft Excel 输出”步骤的配置中,用
18、$GLOBAL_PATH 引用环境变量,指定输出的路径为C:/Users/45812/Desktop/etl/GlobalPath。当创建同样的第二个转换后,该全局参数同样可为第二个转换所用。第一个转换案例右键点击当前转换画布上空白的地方,在弹出的菜单中点击“转换设置CTL-L”第一个转换案例在“转换属性”的“命名参数”标签卡中配置命名参数的名字和值。第一个转换案例在“Microsoft Excel 输出”步骤的配置中,用$LOCATIONPATHOUT 引用环境变量,指定输出的路径为C:Users45812DesktopetlLocalPath。第一个转换案例在实际工作环境中,这些用spoo
19、n开发的转换、作业都是定时执行的,给数据仓库或其他系统定期提供转换后的数据,用于数据挖掘或可视化。在windows环境下,可以使用控制面板中的计划任务定时执行批处理。第一个转换案例在本实验中,假设此转换保存的路径及文件名为C:Users45812DesktopetlktrFirstTan.ktr,则批处理文件内容如下:cd/d d:data-integrationpan/file=C:Users45812DesktopetlktrFirstTan.ktr /level=Detailed/logfile=D:1.log0注:用命令行或批处理脚本启动转换时,Kettle不支持中文路径、中文的ktr
20、文件。该批处理文件的第一行中,d:data-integration为Kettle的安装路径。用cd命令切换到该路径中执行第2行的命令行。第2行中,用pan对应执行Kettle安装目录下的pan.bat批处理脚本。该脚本的命令行参数语法规范如下:/-name:=value以斜线(/)或横线(-)后接参数名,大部分参数名后面都要有参数值。参数值通过冒号(:)或等号(=)给参数名赋值。参数值中如果包含有空格,参数值必须用单引号()或双引号(“”)引起来。第一个转换案例Pan命令的参数名及参数值的描述如下:参数名参数值说明file文件名指定转换或作业的文件名levelError,Nothing,Bas
21、ic,Detail,Debug,Rowlevel指定日志级别logfile日志文件名指定执行转换或作业的日志文件名第一个转换案例 打开控制面板,用大图标的方式查看,找到“管理工具”,点击它进行下一步的设第一个转换案例双击“任务计划程序”进入下一步的设置。第一个转换案例点击“创建基本任务”第一个转换案例给定时的计划任务起个名称,加上必要的描述,然后点击下一步。第一个转换案例根据情况选择定时的方式,此例子选择“每天”执行,然后点击下一步第一个转换案例设置每天定时的时间,然后点击下一步。第一个转换案例选择“启动程序”,定时的去执行批处理脚本。然后点击下一步。第一个转换案例点击“浏览”按钮,选择定时执行的批处理文件。第一个转换案例点击“完成”按钮,完成配置。第一个转换案例返回计划任务的配置界面后,点击“活动任务”三角形的按钮,展开任务列表。在任务列表中,将查看到刚才新建的定时任务kettle。时间到了,将会自动执行此转换。谢谢观看