使用kettle工具前需要做的准备:
因为本次实验是将CSV文件和JSON文件中的数据保存至数据库的数据表中,所以在此之前需要在数据库中建立一个数据库及两个数据表。
使用命令行建立数据库、数据表过程如下:
mysql -u root -p -- 回车后需要输入你的数据可以密码
/*进入MySQL后开始建库建表*/
mysql> create database extract; -- 新建一个名为extract的数据库
mysql> use extract; -- 使用该库
Database changed -- 此为系统回复
mysql> create table csv -- 新建一个名为csv的表
-> (
-> CustomerID int,
-> Gender char(8),
-> Age int,
-> Annual_Income int,
-> Spending_Score int
-> );
Query OK, 0 rows affected (0.16 sec) -- 此为成功创建表
mysql> create table json(id int, field int, value char(20)); --新建一个名为json的表
Query OK, 0 rows affected (0.12 sec) -- 此为成功创建表
/*"->"为换行符标识,";"为命令终止符,创建表是换行不换行都可以。
换行可以有助于建表时出现错误时更快找到*/
查看创建的csv表(json表这里就不查了,有个例子就行):
一、CSV文件的抽取
1.创建转换
使用kettle工具创建一个转换csv_extract,并添加“CSV文件输入”控件和“表输出”控件,建立连接(左键框起,右键选择新建节点连接),如图1-1所示。
图1-1 创建转换csv_extract
2.配置控件
双击“CSV文件输入”控件,进入界面,点击文件名后的“浏览”按钮选择要抽取的csv格式文件。点击“获取字段”按钮,kettle自动检索CSV文件点击,效果如图1-2所示。然后点击“预览“按钮,查看文件数据是否抽取到CSV文件输入流中,具体效果如图1-3所示。关闭预览数据,点击”确定“。
图1-2 获取字段
图1-3 预览数据
现在配置“表输出”控件。
双击“表输出控件”,点击数据库连接“新建”按钮,具体配置如1-4所示。
图1-4 MySQL数据库连接的配置
单击目标表的“浏览”按钮,选择extract中的csv表,如1-5所示。然后勾选“指定数据库字段”复选框,用于数据表字段与文件字段相匹配。
图1-5 目标表浏览
然后选择“数据库字段”选项卡,点击“输入字段映射”按钮,给源字段和目标字段做匹配,用Add(A)按钮加入到映射(可用猜一猜自动实现映射),然后点击“确定”,具体如图1-6所示。
图1-6 映射匹配
完整配置如1-7所示,配置完成点击“确定”。
图1-7 “表输出”控件配置效果
3.运行与查看
单击左上角的三角按钮,运行创建的转换csv_extract,将csv文件数据保存在数据表csv中,执行如图1-8所示。
图1-8 转换csv_extrac的执行
查看数据表csv中的数据。打开MySQL Workbench,输入 select * form extract.csv; 按“Ctrl+Enter”执行,结果如1-9所示。
图1-9 MySQL Workbench查看csv表数据
二、JSON文件的数据抽取
JSON是一种轻量级的数据交换格式,也是一种文本数据交换格式。
1.创建转换
创建转换json_extracct,并添加JSON input控件、“表输出”控件,连接起来,如2-1图所示。
图2-1 创建转换json_extract
2.配置控件
首先进入“JSON input”控件界面,点击文件或路径旁的“浏览”按钮,选择要抽取的JSON文件。然后点击“增加”按钮,具体效果如图2-2所示。
图2-2 JSON输入界面
然后选择“字段”,添加要抽取的数据字段,配置如图2-3所示。
图2-3 字段配置
完成“JSON input”控件配置。
现在进入“JSON input2”控件。勾选“源定义在一个字段里?”复选框,从“字段获取源”的下拉列表中选择字段名,即data。之后,选择“字段”,添加要抽取的数据字段,配置如图2-4所示。
图2-4 字段配置
点击确定,完成配置。
现在配置“表输出”控件。选择“表输出控件”,点击数据库连接“新建”按钮,具体配置如2-5所示。
图2-5 MySQL数据库连接的配置
目标表“浏览”选择数据表json。单击“输入字段映射”按钮,配置如2-6所示。“表输出”的具体配置如图2-7所示。
图2-6 映射匹配
图2-6 “表输出”控件配置
3.运行与查看
单击左上角的三角按钮,运行创建的转换json_extract,将json文件数据保存在数据json中,执行如图2-7所示。
图2-7 转换json_extrac的执行
查看数据表json中的数据。打开MySQL Workbench,输入 select * form extract.json; 按“Ctrl+Enter”执行,结果如图2-8所示。
图2-8 MySQL Workbench查看json表数据
实验参考:《数据清洗》黑马程序员/编著