一.XML数据文件抽取

1.通过使用Kettle工具,创建一个转换转换xml_extract,并添加“Get data from XML”控件、“表输出”控件以及Hop跳连接线,具体如图所示。

kettle抽取mysql原理 kettle抽取数据_前端

 

2.配置Get data from XML控件

双击“Get data from XML”控件,进入“XML文件输入”界面。单击【浏览】按钮,选择要抽取的XML文件xml_extract.xml。

kettle抽取mysql原理 kettle抽取数据_前端_02

 单击“内容”选项卡,单击【获取XML文档的所有路径】选择循环读取路径,即/AllRows/Rows/Row。

kettle抽取mysql原理 kettle抽取数据_mysql_03

 单击“字段”选项卡,添加要抽取的字段。

kettle抽取mysql原理 kettle抽取数据_mysql_04

 

3.配置表输出控件

双击“表输出”控件,进入“表输出”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。

kettle抽取mysql原理 kettle抽取数据_mysql_05

单击目标表右侧的【浏览】按钮,选择输出的目标表,即xml数据表;勾选“指定数据库字段”的复选框,用于将数据表xml的字段与XML文件xml_extract.xml文件中的字段进行匹配。

kettle抽取mysql原理 kettle抽取数据_java_06

单击“数据库字段”选项卡,再单击【输入字段映射】按钮,弹出“映射匹配”对话框,将“源字段”选项框的字段和“目标字段”选项框对应的字段进行映射匹配。

kettle抽取mysql原理 kettle抽取数据_etl_07

 

 

表输出”控件配置的最终效果,具体如图所示。

kettle抽取mysql原理 kettle抽取数据_前端_08

 

4.运行转换

单击转换工作区顶部的     按钮,运行创建的xml_extract转换。结果如图

kettle抽取mysql原理 kettle抽取数据_mysql_09

数据库中数据如图

kettle抽取mysql原理 kettle抽取数据_前端_10

二.抽取json数据

1. 通过使用Kettle工具,创建一个转换json_extract,并添加“JSON input”控件、“表输出”控件以及Hop跳连接线,具体如图所示。

kettle抽取mysql原理 kettle抽取数据_etl_11

2.配置“JSON input”控件

双击“JSON input”控件,进入“JSON输入”界面。单击【浏览】按钮,选择要抽取的JSON文件json_extract.json;单击【增加】按钮,将所选择的文件添加到“选中的文件和目录”处。

kettle抽取mysql原理 kettle抽取数据_java_12

 单击“字段”选项卡,添加要抽取的数据字段(这里采用分层抽取数据字段,先抽取id和data字段,再从data字段中抽取field和value字段)。

kettle抽取mysql原理 kettle抽取数据_etl_13

 3.配置“JSON input2”控件

双击“JSON input 2”控件,进入“JSON输入”界面。勾选“源定义在一个字段里?”的复选框;在“从字段获取源”处的下拉框中选择字段名,即data。

kettle抽取mysql原理 kettle抽取数据_kettle抽取mysql原理_14

单击“字段”选项卡;添加从字段data中抽取的field和value字段。

kettle抽取mysql原理 kettle抽取数据_mysql_15

4.配置表输出控件

双击“表输出”控件,进入“表输出”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。

kettle抽取mysql原理 kettle抽取数据_kettle抽取mysql原理_16

 单击目标表右侧的【浏览】按钮,选择输出的目标表,即数据表json;勾选“指定数据库字段”的复选框,用于将数据表json的字段与JSON文件json_extract.json中的字段进行匹配。

kettle抽取mysql原理 kettle抽取数据_etl_17

 

单击“数据库字段”选项卡,再单击【输入字段映射】按钮,弹出“映射匹配”对话框,将“源字段”选项框的字段和“目标字段”选项框对应的字段进行映射匹配。

kettle抽取mysql原理 kettle抽取数据_kettle抽取mysql原理_18

 表输出”控件配置的最终效果,具体如图所示。

kettle抽取mysql原理 kettle抽取数据_etl_19

 

5.运行转换

单击转换工作区顶部的运行按钮,运行创建的json_extract转换。

kettle抽取mysql原理 kettle抽取数据_java_20

 通过SQLyog工具,查看数据表json是否已成功插入6条数据,具体如图所示。

kettle抽取mysql原理 kettle抽取数据_kettle抽取mysql原理_21