4.1TSV文件的抽取

案例介绍:

通过Kettle工具抽取TSV文件tsv_extract.tsv中的数据保存至数据库extract中的数据表tsv中。

步骤:

一:打开kettle工具,创建转换

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

二:配置文本文件输入控件

②双击“文本文件输入”控件,进入“文本文件输入”界面。单击【浏览】按钮,选择要抽取的文件tsv_extract.tsv。,单击【增加】按钮,将要抽取的TSV文件添加到转换“tsv_extract”中。单击“内容”选项卡,清除分隔符处默认分隔符“;”并单击【Insert TAB】按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框。单击【预览记录】按钮,查看文件tsv_extract.tsv的数据是否成功抽取到文本文件输入流中。

三:配置表输出控件

③双击“表输出”控件,进入“表输出”控件的配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击目标表右侧的【浏览】按钮,获取目标表,即数据表tsv。勾选图4-13中的“指定数据库字段”复选框。单击“数据库字段”选项卡,再单击【输入字段映射】按钮,弹出“映射匹配”对话框,将“源字段”选项框的字段和“目标字段”选项框对应的字段进行映射匹配。“表输出”控件配置的最终效果。

四:运行转换

案例如下:

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_数据库_02

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_03

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_04

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_05

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_数据库_06

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_07

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_08

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_09

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_10

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_11

 

4.1CSV文件的抽取

案例介绍:

通过Kettle工具抽取CSV文件csv_extract.csv中的数据并保存至数据库extract的数据表csv中。

步骤:

一:打开kettle工具,创建转换

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

二:配置CSV文件输入控件

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

三:配置表输出控件

③单击【预览】按钮,查看文件csv_extract.csv的数据是否抽取到CSV文件输入流中。双击“表输出”控件,进入“表输出”控件的配置界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击目标表右侧的【浏览】按钮,获取目标表,即数据表csv;勾选“指定数据库字段”的复选框。单击“数据库字段”选项卡,再单击【输入字段映射】按钮,弹出“映射匹配”对话框,将“源字段”选项框的字段和“目标字段”选项框对应的字段进行映射匹配。“表输出”控件配置的最终效果。

四:运行转换

案例如下:

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_12

  

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_13

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_14

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_15

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_16

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_17

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_18

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_数据库_19

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_20

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_21

 

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_22

 

4.2HTML网页数据的抽取

案例介绍:

通过Kettle工具抽取HTML网页的数据,并保存至数据库extract中的数据表html中。

步骤:

一:打开kettle工具,创建转换

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

二:配置自定义常量数据控件

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

三:配置HTPP client控件

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

四:配置java代码控件

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

五:运行转换

案例如下:

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_23

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_24

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_25

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_26

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_数据库_27

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_28

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_29

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_30

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_31

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_32

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_数据库_33

 

4.2XML文件的数据抽取

案例介绍:

通过Kettle工具抽取XML文件xml_extract.xml中的数据并保存至数据库extract的数据表xml中。

步骤:

一:打开kettle工具,创建转换

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

二:配置Get data from XML控件

②双击“Get data from XML”控件,进入“XML文件输入”界面。单击【浏览】按钮,选择要抽取的XML文件xml_extract.xml。单击“内容”选项卡,单击【获取XML文档的所有路径】选择循环读取路径,即/AllRows/Rows/Row。单击“字段”选项卡,添加要抽取的字段。

三:配置表输出控件

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

四:运行转换

案例如下:

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_34

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_35

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_36

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_37

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_38

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_39

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_40

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_41

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_42

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_数据库_43

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_44

 

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_45

 

4.2JSON文件的数据抽取

案例介绍:

通过Kettle工具抽取JSON文件json_extract.json中的数据并保存至数据库extract中的数据表json中。

步骤:

一:打开kettle工具,创建转换

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

二:配置JSON文件输入控件

②双击“JSON input”控件,进入“JSON输入”界面。单击【浏览】按钮,选择要抽取的JSON文件json_extract.json;单击【增加】按钮,将所选择的文件添加到“选中的文件和目录”处。单击“字段”选项卡,添加要抽取的数据字段(这里采用分层抽取数据字段,先抽取id和data字段,再从data字段中抽取field和value字段)。双击“JSON input 2”控件,进入“JSON输入”界面。勾选“源定义在一个字段里?”的复选框;在“从字段获取源”处的下拉框中选择字段名,即data。单击“字段”选项卡;添加从字段data中抽取的field和value字段。

三:配置表输出控件

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

四:运行转换

案例如下:

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_46

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_47

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_数据库_48

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_49

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_50

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_51

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_52

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_53

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_54

 

4.3抽取关系型数据库的数据

案例介绍:

通过Kettle工具抽取数据表student的数据保存至MySQL数据库的数据表student_mysql中。

步骤:

一:打开kettle工具,创建转换

①通过Kettle工具抽取数据表student的数据保存至MySQL数据库的数据表student_mysql中。

二:配置表输入控件

②双击“表输入”控件,进入“表输入”配置界面” 。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。在SQL框中编写查询数据表student的SQL语句,然后单击【预览】按钮,查看数据表student的数据是否成功从SQL Server数据库中抽取到表输入流中。

三:配置表输出控件

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

四;运行转换

案例如下:

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_55

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_56

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_57

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_58

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_59

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_60

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_61

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_62

 

4.3抽取非关系型数据库的数据

案例介绍:

通过Kettle工具抽取集合Personal information中的数据保存至MySQL中的数据表Personal information中。

步骤:

一:打开kettle工具,创建转换

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

二:配置表输入控件

②双击“MongoDB input”控件,进入“MongoDB input”配置界面。单击“Input options”选项卡,指定数据库和数据表,即在“Database”处添加数据库mongodb_mysql,在“Collection”处添加集合Personal information。单击“Fields”选项卡,勾选“Output single JSON field”的复选框,并在“Name of JSON output field”处指定输出的字段名为json。

三:配置JSON input控件

③双击“JSON input”控件,进入“JSON input”配置界面。单击“文件”选项卡,配置数据的获取源,勾选“源定义在一个字段里?”的复选框,在“从字段获取源”的下拉框中选择从json字段获取数据。单击“字段”选项卡,添加要抽取的数据字段。

四:配置表输出控件

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

五:运行转换

案例如下:

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_字段_63

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_64

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_etl_65

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_66

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_67

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_68

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_69

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_70

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_71

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_控件_72

 

kettle 将mysql表抽取到sqlserver kettle数据抽取案例_开发语言_73