通常情况下,对于几千条甚至几十万条记录的数据迁移而言,采取DML(即数据操纵语言)的INSERT语句能够很好地将数据迁移到目标数据库中。然而,当数据迁移量过于庞大时,就不能使用INSERT语句,因为执行INSERT、UPDATE以及DELETE语句的操作都会生成事物日志,事物日志的生成会减慢加载的速度,故需要针对数据采取批量加载操作。
本案例通过Kettle工具将文件weibo_user.csv中的数据批量加载到数据表weibo_user中。
数据准备
假设,现有一个CSV格式的微博用户信息文件weibo_user.csv,其中包含了用户id、用户名称、用户性别、用户简介等字段,文件weibo_user.csv的具体内容如图所示(这里只截取了部分数据)。
1.打开Kettle工具,创建转换
使用Kettle工具,创建一个转换batch_load,并添加执行CSV文件输入控件、表输出控件以及Hop跳连接线,具体如图所示。
2.配置CSV文件输入控件
在“文件名”处单击【浏览】按钮,选择要抽取的CSV文件weibo_user.csv;单击【获取字段】按钮,让Kettle自动检索CSV文件,并对文件中字段的类型、格式、长度、精度等属性进行解析,具体如图所示。
单击【预览】按钮,查看CSV文件weibo_user.csv的数据是否抽取到CSV文件输入流中,具体如图所示。
3.配置表输出控件
单击目标表右侧的【浏览】按钮,选择输出的目标表,即数据表weibo_user(该表需提前创建,且表结构需根据文件weibo_user.csv中数据的字段和数据类型进行创建,这里不作演示);勾选“指定数据库字段”的复选框,用于将weibo_user数据表的字段与weibo_user.csv文件中的字段进行匹配;勾选“使用批量插入”的复选框,用于批量加载数据至目标表中。选择“数据库字段”选项卡,单击【输入字段映射】按钮,弹出“映射匹配”对话框,依次选中“源字段”选项框的字段和“目标字段”选项框的字段,再单击【Add】按钮,将一对映射字段添加至“映射”选项框中,若“源字段”选项框的字段和“目标字段”选项框的字段相同,则可以单击【猜一猜】按钮,让Kettle自动实现映射。
单击映射匹配对话框的【确定】按钮,“表输出”界面最终显示的效果,具体如图所示。
4.运行转换
5.查看数据表weibo_user中的数据
通过SQLyog工具,查看数据表weibo_user已成功加载到数据,查看结果如图所示