在进行转换之前我们需要建立好数据库,并在数据库下建立数据表。那如何建立数据库和数据表呢,有两种方式,可以在cmd界面里创建,也可以在SQLyog图形化界面里创建。

这里演示一下从cmd里创建数据库:win+R打开cmd命令提示符,找到你下载的mysql所在的地址,输入cd空格地址转换到mysql下工作,再输入mysql -u root -p,然后输入密码,就可以创建数据库了,输入create database extract;创建数据库,创建的数据库名称是extract。如下图所示。

kettle 中Java组件解析json数组多行 kettle抽取json数据_JSON

 打开SQLyog,连接创建好的数据库,并给数据库连接一个名称(自己取并记住)

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_02

在extract数据库下打开表,选择新建一个数据表CSV,等会抽取CSV文件的时候要用到。创建表时要根据自己的表数据的属性创建。

kettle 中Java组件解析json数组多行 kettle抽取json数据_字段_03

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_04

表创建好之后点击保存即可。

下面打开kettle点击“文件”→“新建”→“转换”创建一个转换,点击“文件”→“保存”给转换命名为csv_extract。并添加“csv文件输入”和“表输入”,再建立节点连接。

kettle 中Java组件解析json数组多行 kettle抽取json数据_字段_05

双击“csv文件输入”进入界面。点击“浏览”选择需要抽取的文件,点击“获取字段”,自动检索csv文件,点击“预览”查看文件csv_extract.csv文件是否抽取到csv文件输入流中。如下图

kettle 中Java组件解析json数组多行 kettle抽取json数据_字段_06

点击确定完成“csv文件的输入”。双击“表输出”进入界面,点击“新建”进入mysql数据库连接的配置,如下图

kettle 中Java组件解析json数组多行 kettle抽取json数据_JSON_07

点击“确认”完成配置。在目标表右侧选择extract数据库下建的csv数据表

kettle 中Java组件解析json数组多行 kettle抽取json数据_JSON_08

 点击“数据库字段”,“输入字段映射”,将字段一一对应点击add“”进行映射。点击“确定”,如出现如下界面,则“表输入”完成。

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_09

点击运行,如下图所示则运行成功。

kettle 中Java组件解析json数组多行 kettle抽取json数据_字段_10

打开SQLyog查看csv文件是否成功插入数据。如下图。

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_11

 到这里,csv文件的抽取就完成了。

接下来说一下JSON文件的抽取:数据库我们在最开始已经建好了,接下来我们还需要在extract数据库下建一个json数据表,操作和上面相同,下图是建好的数据表。

kettle 中Java组件解析json数组多行 kettle抽取json数据_JSON_12

注意选择数据的类型和定义的长度。建立完成后打开kettle建立一个json_extract转换。并添加两个“JSON input“和“表输出”,建立Hop跳连接线。如下图。

kettle 中Java组件解析json数组多行 kettle抽取json数据_JSON_13

 

双击第一个“JSON input”进入界面。点击“浏览”选择相应的文件,再点击“增加”将所选择的文件添加到“选中的文件”处。

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_14

 

点击“字段选项卡”,进入界面,采用分层抽取数据字段,先抽取id和data,再从id字段中抽取field和value字段。

kettle 中Java组件解析json数组多行 kettle抽取json数据_JSON_15

点击“确定”完成JSON input控件的配置。

双击JSON input 2进入界面,勾选“源定义在一个字段里?”复选框,再“从字段获取源”处选择data。如图。

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_16

点击“字段”进入字段选项卡界面,添加从data字段抽取的field和value字段。

kettle 中Java组件解析json数组多行 kettle抽取json数据_JSON_17

点击“确定”完成配置。

双击“表输出”进入界面。

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_18

 

点击“新建”连接数据库连接。这里连接数据库连接同上,点击新建进入界面,将数据库连接配置好。

kettle 中Java组件解析json数组多行 kettle抽取json数据_mysql_19

点击“目标表”右侧的浏览选择我们前面在extract数据库下创建好的数据表json,如下图。

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_20

点击“数据库字段”,选择“输入字段映射”进入映射匹配对话框。一次选择“源字段”中的字段和“目标字段”中的字段一一对应点击“add”进行映射匹配。匹配完成后点击“确定”按钮。若显示以下界面则“表输出”的配置完成。

kettle 中Java组件解析json数组多行 kettle抽取json数据_mysql_21

点击运行如果成功会出现以下界面。

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_22

打开SQLyog工具查看数据表json是否成功插入数据,若出现以下界面,则成功插入。

kettle 中Java组件解析json数组多行 kettle抽取json数据_json_23

以上就是用kettle工具实现抽取CSV文件csv_extract.csv中的数据保存至数据库extract中的数据表csv中和抽取JSON文件中的json_extract.js中的数据保存至数据库extract中的数据表json中。

我们需要注意数据库的建立,数据库的连接以及数据表的建立。在SQLyog图形界面中实现这些操作会比cmd字符命令界面简洁许多。数据库和数据库连接是不同的,两者在命名时应注意一下,也可以将两者命名为相同的名字。在使用kettle时应注意一些细节操作,例如数据库的连接等。