一.CSV文件的抽取

1.打开Kettle工具,创建转换

使用Kettle工具创建一个转换csv_extract,并添加“CSV文件输入”控件、“表输出”控件以及Hop跳连接线,用于实现CSV文件数据的抽取功能,具体效果如图4-1所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_json


图4-1 创建转换csv_extract

2.配置“CSV文件输入”控件

双击图4-1中的“CSV输入控件”,进入界面,单击浏览按钮,选择要抽取的文件csv_extract.csv,具体如图4-2所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_控件_02


图4-2“CSV文件”输入界面

单击图4-2中的获取字段按钮,Kettle自动检索CSV文件,并对文件中的字段类型、格式、长度,精度等属性进行分析,具体效果如图4-3所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_json_03


图4-3 获取字段

单击图4-3中的“浏览”按钮,查看文件csv_extract.csv的数据是否抽取到CSV文件输入流中,具体效果如图4-4所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_json_04


图4-4 预览数据

从图4-4中我们可以看出,CSV文件csv_extract.csv已经成功的抽取到CSV文件输流中,单击“关闭”→“确定”按钮,完成CSV文件输入控件的配置。

3.配置表输出控件

双击图4-1中的表输出控件,进入表输出界面,按“新建”按钮配置数据库具体如图4-5所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_控件_05


图4-5 MySQL数据库连接的配置

数据库连接完成以后,单击右侧“浏览”按钮,选择要输出的目标表,即数据表csv_extract.csv。勾选“指定数据库字段”,用于将数据表csv的字段与CSV文件中的字段进行匹配。具体如图4-6所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_控件_06


4-7 指定输出的目标表

在图4-7中选择“数据库字段”选项卡,点击“输入字段映射”按钮,弹出“映射匹配”的对话框,具体如图4-8所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_CSV_07


图4-8“数据库字段”选项卡

依次选中“源字段”中字段和“目标字段”中的字段,若“源字段”和“目标字段”中的字段相同,则可以单击“猜一猜”按钮,让Kettle实现自动映射,如图4-9所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_CSV_08


图 4-9 设置映射匹配

(若是源字段与目标字段是不一致或者是出现field的情况请检查数据库有无连接好,再运行第一步CSV文件的配置(我当时是这么个情况)

单击确定,完成“表输出”控件的配置,具体效果如图4-10 所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_CSV_09


图4-9 表输出界面

4.运行转换csv-extract,效果如图4-11:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_CSV_10


图4-11 运行转换csv-extract

二.JSON文件的数据抽取

1.打开Kettle,创建转换

使用Kettle工具创建转换json_extract,并添加JSON input控件,“表输入”控件以及Hop跳连接线,具体效果如图4-12所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_json_11


图4-12 创建转换json_extract

2.配置JSON input控件

双击JSON input控件,进入控件界面,如图4-13所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_控件_12


图4-13 “JSON”输入界面

单击“浏览”按钮,将所选择的文件添加到“选中的文件”处,具体效果如图4-14所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_json_13


图4-14 选择所要抽取的JSON文件

单击“字段”选项卡,进入“字段”选项卡界面,添加要抽取的数据字段(这里采用分层抽取,先抽取id和data字段,再从data字段中抽取field和value字段),具体配置如图4-15所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_控件_14


图4-15 抽取id和data字段的配置

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

双击4-12中的JSON input2 控件,进入“JSON输入”界面,并勾选“源定义在一个字段里?”复选框;“从字段获取源”后的下拉列表中选择字段名,即data,如图4-16所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_CSV_15


图4-16 JSON 2输入界面

在4-16中添加从字段data中获取的field和value按钮,具体配置如图4-17所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_CSV_16


4-17 配置抽取的field和value字段

点击“确定”按钮,完成JSON input2的配置,具体如图4-18所示;

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_字段_17


图4-18

3.配置“表输出”控件

双击“表输出”控件,进入“表输出”界面,具体如图4-20所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_json_18


图4-20 “表输出”界面

点击“新建”按钮,配置数据库连接(前面有配置过程,不再赘述),配置完成后单击“确认”按钮。具体如图4-21所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_字段_19


图4-21 指定输出的目标表

单击图4-21 中“数据库字段”进入“数据库字段”选项卡界面,单击“输入字段映射”按钮,弹出“映射匹配”对话框,如图4-22所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_控件_20


图4-22 映射匹配对话框

依次选择“源字段”中的字段和“目标字段”中的字段,单击“猜一猜”按钮,让Kettle自动实现映射,具体如图4-23所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_控件_21


图4-23 设置映射匹配

完成的“表输出”控件的配置如图4-24所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_字段_22


图4-24 “表输出”界面最终展示的效果

4.运行转换json_extract

运行转换json_extract 界面如图4-25所示:

KETTLE JavaScript 获取表输入设置变量 kettle抽取json数据_CSV_23


图4-25 运行转换json_extract

以上就是简单的csv文件抽取和json文件抽取的过程。