2026-08-26 09:30:26
案例背景:
公司新入职的程序员小花被项目经理安排了一项任务:将一个名为user.xls的Excel文件中的数据抽取并导入到MySQL数据库中。以下将详细讲解如何使用Kettle完成这一任务。
准备工作:
获取Excel文件:
在指定位置找到名为user.xlsx的Excel文件(注意文件后缀为.xlsx,表示是Excel 2007及以上版本的文件)。
在MySQL中创建数据库:
使用数据库管理工具(如DataGrip)连接到MySQL服务器。
右键点击MySQL连接,选择“New/Schema”,在对话框中输入数据库名称(如kettle_demo),然后点击“Execute”执行创建。
在Kettle中加载MySQL驱动:
将MySQL的JDBC驱动包(如mysql-connector-java-5.1.47.jar或mysql-connector-java-8.0.13.jar)复制到Kettle的data-integration/lib目录中。
重启Kettle以加载新的驱动。
构建Kettle数据流图:
创建转换:
在Kettle中,点击菜单“文件/新建/转换”,或者点击工具栏上的新建转换按钮,或者使用快捷键Ctrl + N创建一个新的转换。
添加组件:
从左侧的核心对象中,拖入“输入/Excel输入”和“输出/表输出”两个组件到中间的工作区域。
按住Shift键,从“Excel输入”组件拖动到“表输出”组件,连接两个组件以形成数据流。
配置Kettle数据流图中的组件:
配置Excel输入组件:
双击“Excel输入”组件,打开配置对话框。
选择“Excel 2007 XLSX (Apache POI)”作为表格类型。
点击“浏览”按钮,找到并选择user.xlsx文件。
点击“增加”按钮,将Sheet1工作簿添加到右侧的列表中。
点击“字段”选项卡,点击“获取来自头部数据的字段...”按钮,Kettle会自动读取Excel文件的第一行作为字段名称。
根据需要设置字段格式,如将age字段的格式设置为#,将register_date字段的格式设置为yyyy-MM-dd HH:mm:ss。
点击“预览记录”按钮查看数据是否正确读取。
点击“确定”按钮保存配置。
配置MySQL组件:
双击“表输出”组件,打开配置对话框。
点击“新建”按钮,创建新的数据库连接。
在连接配置窗口中,输入连接名称(如mysql_kettle_demo),选择MySQL作为连接类型,并输入MySQL的连接参数(如主机名、端口号、用户名、密码和数据库名称)。
点击“测试”按钮,确保Kettle能够正确连接到MySQL数据库。
点击“确认”按钮保存连接配置。
在表输出组件的配置窗口中,输入目标表名(如t_user)。
Kettle会自动生成创建表的SQL语句,可以根据需要修改字段类型和长度。
点击“执行”按钮,让Kettle在MySQL中创建表。
点击“确定”按钮保存配置。
保存并启动执行Kettle转换:
保存转换:
点击工具栏上的保存按钮,保存转换文件。
启动执行:
点击工具栏上的播放按钮,启动执行转换。
在执行过程中,可以观察各个组件的状态和日志信息,确保数据正确抽取和装载。
查看执行结果:
执行成功后,各个组件上会显示绿色的对号,执行结果中会显示“转换完成!”。
在MySQL中查看t_user表,确认数据已经正确抽取并装载到MySQL中。
确认执行结果:
总结:
通过以上步骤,我们成功使用Kettle将Excel文件中的数据抽取并装载到了MySQL数据库中。这个过程包括准备工作、构建数据流图、配置组件、保存并执行转换以及确认执行结果等多个步骤。希望这个实战案例能够帮助你更好地理解如何使用Kettle进行数据抽取和装载。