《《数据采集与预处理》教学教案—09用Kettle进行数据预处理.docx》由会员分享,可在线阅读,更多相关《《数据采集与预处理》教学教案—09用Kettle进行数据预处理.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据采集与预处理NO. 9教师姓名授课班级授课形式理实一体化授课时间.年 月 日第周授课时数4授课章节名称任务2 用 Kettle进行数据预处理教学目的(1)熟悉 Kettle的相关基础知识。(2)学会使用 Kettle完成“北京公交线路信息” 数据的预处理。教材分析教学重点使用 Kettle完成 “北京公交线路信息” 数据的预处理教学难点使用 Kettle完成 “北京公交线路信息” 数据的预处理更新、 补充、删节内容课外作业积极动手实践, 熟练完成相关任务的实施操作教学提示教学过程一、知识准备:Kettle的中文名称为水壶。在数据处理中,Kettle是一个ETL工具集, 它可以管理来自不同数
2、据库的数据,通过提供一个图形化的用户环境来描 述想做什么,而不是怎么做。Kettle中有两种脚本文件:Transformation Jobo其中,Transformation用于完成针对数据的基础转换,而Job用于完成 整个工作流的控制。1. Kettle的三大模块Spoon转换/工作设计工具(GUI方式)。(1) Kitchen工作执行器(命令行方式)。(2) Pan转换执行器(命令行方式)。2. Kettle的组件创建一个新的Transformation, Kettle中Transformation文件的默认后 缀名为ktro创建一个新的Job, Kettle中Job文件的默认后缀名为kj
3、bo(1) Transformation 组件树 Main Tree:列出了一个Transformation的基本属性,可以通过各个 节点进行查看。DB 连接:显示当前 Transformation中的数据库连接,每一个 Transformation的数据库连接都需要单独配置。Steps: 一个Transformation中应用到的环节列表。 Hops: 一个Transformation中应用 到的节点连接列表。核心对象菜单列出的是Transformation中可以调用的环节列表,可以 通过鼠标拖动的方式对环节进行添加。(2) Job组件树 Main Tree:列出了一个Job的基本属性,可以
4、通过各个节点进行 查看。 DB连接:显示当前Job中的数据库连接,每一个Job的数据库连 接都需要单独配置。Job Entries:即作业项 目一个Job中引用的环节列表。核心对象菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖 动的方式对环节进行添加。每一个环节都可以通过鼠标拖动操作被添加到 主窗口中,并可通过 “Shift” 键+鼠标拖动,实现环节之间的连接。二、任务实施:1,修改数据库默认字符集并创建数据库数据存入 MySQL时会出现中文乱码问题,因此需要将 MySQL数据 库的默认字符集设为UTF-8O具体操作如下。(1)进入默认 MySQL安装目录,查看 f文件,如图4-4所示
5、。:$ cd /etc/nysql:$ sudo gedit f打开9) 向f The MySQL database server configuration file.# You can copy this to one of:# - /etc/mysql/f to set global options, - /f to set user-specific options.# One can use all long options that the program supports.n Run program with -help to get a list of available op
6、tions and with ff -print-defaults to see which tt would actually understand and use.# For explanations see# * IMPORTANT: Additional settings that can override those from this file! n The files must end with .cnf, otherwise theyll be ignored.Ulincludedir /etc/mysql/conf.d/图4-4 查看 f文件从图4-4可以看出 f文件引用了
7、conf.d与 两个目录 中的文件。(2)编辑conf.d目 录中的 f文件。(3)修改 mysql.conf.d 目 录中的 f 文件,在mysqld中 添加character-set-server=utf8(4)进入 MySQL 数据库,执行 “show variables like%char%; 命令, 查看数据库字符集。2 .创建数据表进入student数据库,创建 bus info数据表,用于存储执行数据清洗 操作后的数据。3 .创建 Transformations(1)进入/usr/local/kettle 目录,执行/spoon.sh” 命令,启动 Kettle。(2)新建 Tr
8、ansformations。首先,新建一个 Transformations (双击 Transformations 图标即可)o其次,选择“Design”选项卡,先后将“Input”节点中的Text file input”、 “Transform” 节点中的 “Unique rows、“Utility” 节点中的 If field value is null”及“Output”节点中的“Table output”拖动到工作区中。最后,按住 “Shift” 键,拖动 “Text file input” 图标到 “Unique rows” 图标,进行连线,以此操作实现各个环节间的连线,如图4-16
9、所示。(3)设置 “Text file input”。双击“Text file input”图标,进入“Text file input”设置界面,如图 4-17所示。在“Text file input”界面中单击“Browse”按钮,设置目录为“公 交线路数据” 所在目录,并选中要清洗的资源文件 “bus info.csv,单 击“确定”按钮。在“Text file input”界面中单击“Add”按钮,导入 资源文件,如图4-18所示。选择“Content”选项卡,设置Separator为(Separator表示文件分 隔符),设置Format为“mixed,设置Encoding为“UTF-
10、8(这里设置 的字符集编码要和文件字符集的编码一致),如图4-19所示,设置完毕后 单击“OK”按钮。选择“Fields”选项卡,并单击“Get Fields”按钮,在弹出的对话框 中设置获单数据的行数,这里设置为 “100”,设置完毕后单击 “0K” 按 钮。再次选择“Content”选项卡,单击“Preview rows”按钮,预览数据, 查看完毕后单击“Close”按钮,限后单击“0K”按钮,如图4-21所示。(4)设置“Unique rows”的相关参数。双击 “Unique rows”图标,进入 “Unique rows” 设置界面,Unique rows 组件的功能是去重,单击“G
11、et”按钮,获得字段名,设置完毕后单击“0K” 按钮。(5)双击 “If field value is null”图标,进入 “Replace null value”设 置界面,设置 “If field value is null”相关内容,将 “Replace by value” 设 置为 “空值”(即将数据中所有的空数据填充为 “空值”)。(6)双击“Tableoutput”图标,进入“Tableoutput”设重界面,设置 “Table output” 相关参数。4 .运行任务单击窗口左上方的“A”按钮,弹出“Run Options”对话框,单击“Run” 按钮,运行数据清洗任务。此时,
12、进入保存程序文件界面,设贵保存的文件名称和保存位置,单 击“确定”按钮。执行数据清洗操作,并将清洗后的数据批量导入到数据库中。重新打开一个终端,进入MySQL,进入student数据库,检验清洗后的数 据是否正确导入数据库,如图 4-5 所示。如已经正确导入,则数据库的 busjnfo表中会有数据存在。:.$ nysql -uroot -pEnter password:Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 22Server version: 5.7.23-0ubunt
13、u6.16.04.1 (Ubuntu)Copyright (c) 2000, 2618, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type help;* or h1 for help. Type c* to clear the current input statement.mysql use student;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmvsql select * from bus Info:图4-5 检验清洗后的数据是否正确导入数据库