一.抽取CSV文件csv_extract.csv中的数据保存至数据库extract中的数据表csv中。
***首先准备好一个CSV文件csv_extract.csv如下图所示:***
1.打开kettle工具,创建转换
使用kettle工具创建一个转换csv_extract,并添加“CSV文件输入”控件、“表输出”控件以及Hop跳连接线,用于实现CSV文件数据的抽取功能,具体效果如下图所示:
2.配置“CSV文件输入”控件
(1)单击“CSV文件输入”控件,进入“CSV文件输入”界面,单击“浏览”按钮,选择要抽取的文件csv_extract.csv,如下图所示:
(2)单击“获取字段”按钮,kettle自动检索CSV文件,并对文件中的字段类型、格式、长度、精度等属性进行分析,如下图所示:
(3)单击“预览”按钮,查看文件csv_extract.csv的数据是否抽取到CSV文件输入流中,如下图所示:
从图中可以看出,CSV文件csv_extract.csv的数据已经成功抽取到CSV文件输入流中,单击“关闭”->“确定”按钮,完成“CSV文件输入”控件的配置。
3.配置“表输出”控件
(1)双击“表输出”控件,进入“表输出”界面,单击“新建”按钮,配置数据库连接,配置完成后单击“确认”按钮,如下图所示:
(2)单击目标表右侧的“浏览”按钮,选择输出的目标表,即数据表csv;勾选“指定数据库字段”复选框,用于将数据表csv的字段与CSV文件csv_extract.csv中的字段进行匹配,如下图所示:
(3)选择“数据库字段”选项卡,单击“输入字段映射”按钮,弹出“映射匹配”对话框,如下图所示:
(4)依次选中“源字段”中的字段和“目标字段”中的对应字段,再单击Add按钮,将一对映射字段添加至“映射”框中,若“源字段”中的字段和“目标字段”中的字段相同,则可以单击“猜一猜”按钮,让kettle自动实现映射,如下图所示:
(5)单击“确定”按钮,“表输出”控件的配置完成。
4运行转换csv_extract
单击转换工作区顶部的运行按钮,运行创建的转换csv_extract,实现将CSV文件中的数据抽取到数据表csv中,如下图所示:
从执行结果的“步骤度量”可以看出,“CSV文件输入”控件输入101条数据并写入该控件100条数据(其中有一条数据为表头数据),而“表输出”控件读取“CSV文件输入”控件中的100条数据并写入该控件,最终进行输出。也就是说,“表输出”控件将从CSV文件输入流中读取的100条数据均写入数据表csv中。
5.查看数据表csv中的数据
从下图中可以看出,数据表csv中已插入数据,说明已经成功实现了将CSV文件csv_extract.csv中的数据抽取到数据表csv中。
二.抽取JSON文件json_extract.js中的数据保存至数据库extract中的数据表json中。
首先准备好一个JSON文件,名为json_extract.json,如下图所示:
1.打开kettle工具,创建转换
使用kettle工具创建转换json_extract,并添加“JSON input”控件、“表输出”控件以及Hop跳连接线,用于实现抽取JSON文件中key值为id、field和value的数据,并保存至数据表json中,如下图所示:
2.配置JSON input控件
(1)双击JSON input控件,进入“JSON输入”界面,单击“浏览”按钮,选择要抽取的JSON文件json_extract.json,如下图所示:
(2)单击“增加”按钮,将所选择的文件添加到“选中的文件”处,如下图所示:
(3)单击“字段”选项卡,进入“字段”选项卡界面,添加要抽取的数据字段(这里采用分层抽取数据字段,先抽取id和data字段,再从data字段中抽取field和value字段),如下图所示:
(4)单击“确定”按钮,完成JSON input控件的配置。然后双击JSON input2控件,进入“JSON输入”界面,勾选“原定义在一个字段里?”复选框;在“从字段获取源”后的下拉列表中选择字段名,如下图所示:
(5)单击“字段”选项卡,进入“字段”选项卡界面,添加从字段data中抽取的field和value字段,具体配置如下图所示:
(6)单击“确定”按钮,完成JSON input2控件的配置。
3.配置“表输出”控件
(1)双击“表输出”控件,进入“表输出”界面,单击“新建”按钮,配置数据库连接,配置完成后单击“确定”按钮,如下图所示:
(2)单击目标表右侧的“浏览”按钮,选择输出的目标表,即数据表json;勾选“指定数据库字段”复选框,用于将数据表json的字段与JSON文件json_extract.json中的字段进行匹配,如下图所示:
(3)单击“数据库字段”选项卡,进入“数据库字段”界面,单击“输入字段映射”按钮,弹出“映射匹配”对话框;依次选中“源字段”中的字段和“目标字段”中对应的字段,单击Add按钮,将一对映射字段添加至“映射”框中。若“源字段”中的字段和“目标字段”中的字段相同,则可以单击“猜一猜”按钮,让kettle自动实现映射,如下图所示:
(4)单击“确定”按钮,“表输出”控件的配置完成。
4.运行转换json_extract
单击转换工作区顶部的运行按钮,运行创建的转换json_extract,实现将JSON文件中的数据抽取到数据表json中,如下图所示:
从执行结果“步骤度量”可以看出,JSON input控件输入2条数据并写入该控件中;JSON input2控件读取JSON控件的2条数据,从这两条数据的data字段中共获取6条数据作为输入并写入该控件中;“表输出”控件读取JSON input控件的两条数据,从这两条数据的data字段中共获取6条数据作为输入并写入该控件中。也就是说,“表输出”控件从JSON input2流中读取的6条数据均写入数据表json中。
三.在抽取CSV文件和抽取JSON文件的过程中使用到的控件有:
抽取CSV文件:
CSV文件输入 | 输入控件 |
---|---|
表输出 | 输出控件 |
抽取JSON文件:
JSON input | 输入控件 |
---|---|
JSON input 2 | 输入控件 |
表输出 | 输出控件 |