第四章:数据抽取

一、tsv的数据抽取

1.数据准备:现有一个名为tsv_extract.tsv的TSV文件,该文件的内容如图所示。

2. 通过使用Kettle工具,创建一个转换tsv_extract,添加“文本文件输入”控件、“表输出”控件以及Hop跳连接线,具体如图所示。

 3.双击“文本文件输入”控件,进入“文本文件输入”界面,单击【浏览】按钮,选择要抽取的文件tsv_extract.tsv,单击【增加】按钮,将要抽取的TSV文件添加到转换“tsv_extract”中。

 单击“内容”选项卡,清除分隔符处默认分隔符“;”并单击【Insert TAB】按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框。

4.双击“表输出”控件,进入“表输出”控件的配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮,单击目标表右侧的【浏览】按钮,获取目标表,即数据表tsv,勾选图4-13中的“指定数据库字段”复选框。

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

5. 运行tsv_extract转换

 6.通过SQLyog工具,查看数据表tsv是否已成功插入五行数据。

二、CSV的数据抽取

1.数据准备:现有一个名为csv_extract.csv的CSV文件,该文件的内容如图所示。

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

2.双击“CSV文件输入”控件,进入“CSV文件输入”界面, 单击【浏览】按钮,选择要抽取的文件csv_extract.csv,单击【获取字段】按钮,Kettle自动检索CSV文件,并对文件中的字段类型、格式、长度、精度等属性进行分析。

单击【预览】按钮,查看文件csv_extract.csv的数据是否抽取到CSV文件输入流中。 

2. 双击“表输出”控件,进入“表输出”控件的配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮,单击目标表右侧的【浏览】按钮,获取目标表,即数据表csv;勾选“指定数据库字段”的复选框。

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

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

3.运行csv_extract转换

 4.通过SQLyog工具,查看数据表csv是否已成功插入100行数据。

三、 HTML网页的数据抽取

1.数据准备:我们以抽取“豆瓣电影排行榜”网页的超链接数据为例进行抽取数据,豆瓣电影排行榜页面的部分内容如图所示。

 通过使用Kettle工具,创建一个转换转换html_extract,并添加“自定义常量数据”输入控件、“HTTP client”查询控件和“Java代码”脚本控件,,具体如图所示。

 双击“自定义常量数据”控件,进入“自定义常量数据”界面,单击“元数据”选项卡,定义一个字段常量filename并指定数据类型String;单击“数据”选项卡,添加html形式数据所在的URL,即

2. 双击“HTTP client”控件,进入“HTTP web service”界面,勾选图4-40的“从字段中获取URL?”的复选框;在“URL字段名”处的下拉框中选择URL字段名,即filename;在“结果字段名”处指定结果字段名称,这里选择默认的结果字段result。“HTTP client”控件配置的效果如图所示。

 3.双击“Java”控件,进入“Java代码”界面,双击“Code Snippits”→ “Common use”→ “Main”,添加Java脚本代码的主方法,即程序入口。

 

 在“Java代码”控件中的代码框编写抽取HTML网页数据的Java脚本代码(具体代码请参考教材文件4-1 Processor.class)。 单击“Java代码”控件中的“字段”选项卡,用于添加新生成的字段;单击“参数”选项卡,用于传入参数。“字段”选项卡界面和“参数”选项卡界面具体如图所示。

 4.运行转换html_extract

 四、XML文件的数据抽取

1.数据准备:现有一个XML文件名为xml_extract.xml ,该文件的内容如图所示。

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

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

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

 

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

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

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

 

 3.运行转换xml_extract

 通过SQLyog工具,查看数据表xml是否已成功插入6条数据。

 

五、 JSON文件的数据抽取

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

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

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

3.双击“JSON input 2”控件,进入“JSON输入”界面,勾选“源定义在一个字段里?”的复选框;在“从字段获取源”处的下拉框中选择字段名,即data,勾选“源定义在一个字段里?”的复选框;在“从字段获取源”处的下拉框中选择字段名,即data,单击“字段”选项卡;添加从字段data中抽取的field和value字段。

 

4.双击“表输出”控件,进入“表输出”配置界面, 单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮单击目标表右侧的【浏览】按钮,选择输出的目标表,即数据表json;勾选“指定数据库字段”的复选框,用于将数据表json的字段与JSON文件json_extract.json中的字段进行匹配。单击“数据库字段”选项卡,再单击【输入字段映射】按钮,弹出“映射匹配”对话框,将“源字段”选项框的字段和“目标字段”选项框对应的字段进行映射匹配。

 5.运行转换json_extract

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

六、抽取关系型数据库的数据

1.数据准备:现有一个数据表名为student(存在于Microsoft SQL Server数据库中,需读者提前创建),如图所示。

 

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

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

 在SQL框中编写查询数据表student的SQL语句,然后单击【预览】按钮,查看数据表student的数据是否成功从SQL Server数据库中抽取到表输入流中。

 3.双击“表输出”控件,进入“表输出”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击【浏览】按钮,选择输出的目标表,即数据表student;勾选“指定数据库字段”的复选框,用于将数据表student的字段与数据表student_mysql的字段进行匹配。​​​​​​​

 单击“数据库字段”选项卡,再单击【输入字段映射】按钮,弹出“映射匹配”对话框,将“源字段”选项框的字段和“目标字段”选项框对应的字段进行映射匹配。“表输出”控件配置的最终效果,具体如图所示。

 

 4.运行转换mssql_mysql

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

七、 抽取非关系型数据库的数据

1.数据准备:现有一个集合名为Personal information,如图所示。

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

2.双击“MongoDB input”控件,进入“MongoDB input”配置界面。单击“Input options”选项卡,指定数据库和数据表,即在“Database”处添加数据库mongodb_mysql,在“Collection”处添加集合Personal information。​​​​​​​

 

单击“Fields”选项卡,勾选“Output single JSON field”的复选框,并在“Name of JSON output field”处指定输出的字段名为json。 3.双击“JSON input”控件,进入“JSON input”配置界面。单击“文件”选项卡,配置数据的获取源,勾选“源定义在一个字段里?”的复选框,在“从字段获取源”的下拉框中选择从json字段获取数据。

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

 4.双击“表输出”控件,进入“表输出”配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击目标表右侧的【浏览】按钮,选择输出的目标表,即数据表personal information;勾选“指定数据库字段”的复选框,用于将MySQL中数据表Personal information的字段与MongoDB中集合Personal information中的字段进行匹配。

 

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

 运行转换mongodb_mysql_extract

 通过使用SQLyog工具,查看数据表Personal information是否已成功插入5条数据,如图所示。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值