数据清洗黑马程序员 第八章综合案例——构建DVD租赁商店数据仓库——阅读笔记(4)

8.3.9 加载租赁数据至租赁事实表

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

使用Kettle工具,创建一个转换load_fact_rental,并添加表输入控件、字段选择控件、过滤记录控件、计算器控件、增加常量控件、数据库查询控件、维度查询/更新控件、插入/更新控件以及Hop跳连接线,如图1所示:

 图1 创建转换load_fact_rental

2.配置表输入控件

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

 图2 配置数据库连接

在SQL框中编写SQL语句,用于获取字段rental_last_update中的最大值,将该值替换为”1970-01-01 00:00:00”并赋值给临时字段max_fact_rental_last_update;单击“预览”按钮,查看临时字段max_fact_rental_last_update是否将默认值设置为“1970-01-01 00:00:00”,如图3所示:

 图3 编写SQL语句

3.配置表输入2控件

双击“表输入2”控件,进入“表输入”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置,如图4所示:

 图4 配置数据库连接

在SQL框中编写SQL语句,用于获取sakila数据库中rental数据表中的最新数据,如图5所示:

 图5 编写SQL语句

4.配置字段选择控件

双击“字段选择”控件,进入“选择/改名值”界面,在“选择和修改”选项卡中添加要修改的字段,如图所示;在“元数据”选项卡的“需要改变元数据的字段”处添加字段。这里使用字段选择控件用于构建数据仓库中维度表需要的字段数据,如图6、图7所示:

 图6 “选择和修改”选项卡

 图7 “元数据”选项卡

5.配置过滤记录控件

双击“过滤记录”控件,进入“过滤记录”界面,在“条件”处设置过滤的条件,对归还时间进行过滤操作;单击左边“<field>”框,弹出字段对话框,选择要过滤的字段return_datetime(归还时间),单击“=”框,弹出函数对话框,选择过滤条件(这里选择的是IS NOT NULL(不为空)),单击【确定】按钮,完成过滤条件的选择,判断归还时间不为空。字段return_datetime的过滤设置,在“发送true数据给步骤:”处的下拉框中选择“计算器”,将字段return_datetime不为空的数据传递到计算器控件流中;在“发送false数据给步骤:”处的下拉框中选择“增加常量”,将为空的数据传递到增加常量控件流中,如图8所示:

 图8 配置过滤记录控件

6.配置计算器控件

双击“计算器”控件,进入“计算器”界面,在“字段”处,添加新字段milisecs、rental_duration_milisecs、rental_duration、count_returns、return_date_key1,其中字段milisecs为自定义常量,值为1000;字段rental_duration_milisecs用于存储租赁的毫秒数;字段rental_duration用于存储租赁的周期;字段count_returns为自定义字段,用于统计归还的次数;字段return_date_key1用于存储归还的日期。这里使用计算器控件用于计算租赁的周期,如图9所示:

 图9 配置计算器控件

7.配置增加常量控件

双击“增加常量”控件,进入“增加常量”界面,在字段框中添加常量字段rental_duration、count_returns、return_date_key1,用来记录归还的日期(由于在过滤记录控件中将归还日期为空的,输出到增加常量控件流中,因此需要在增加常量控件中添加用于记录归还日期的字段),如图10所示:

 图10 配置增加常量控件

8.配置数据库查询控件

双击“数据库查询”控件,进入“数据库查询”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击表名右侧的【浏览】按钮,添加数据表inventory,用于查询电影库存的信息;在“查询所需的关键字”框中,添加查询所需的关键字字段inventory_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回的值,即字段film_id和store_id的数据,如图11所示:

 图11 配置数据库查询控件

9.配置数据库查询2控件

双击“数据库查询2”控件,进入“数据库查询”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击表名右侧的【浏览】按钮,添加维度表dim_film,用于获取数据仓库中维度表dim_film中的数据;在“查询所需的关键字”框中,添加查询所需的关键字字段film_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回的值,即字段film_key,如图12所示:

 图12 配置数据库查询2控件

10.配置维度查询/更新控件

双击“维度查询/更新”控件,进入“维度查询/更新”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击目标表右侧的【浏览】按钮,选择输出的目标表,即维度表dim_customer;在“关键字”选项卡处添加关键字字段;在“代理关键字段”处的下拉框中选择customer_key为代理关键字段,并指定“创建代理键”是使用自增字段;在“Stream日期字段”处的下拉框中选择rental_datetime;在“开始日期字段”处的下拉框中选择customer_valid_from;在“截止日期字段”处的下拉框中选择customer_valid_through,如图13所示:

 图13 配置维度查询/更新控件

11.配置维度查询/更新2控件

双击“维度查询/更新2”控件,进入“维度查询/更新”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击目标表右侧的【浏览】按钮,选择输出的目标表,即维度表dim_staff;在“关键字”选项卡处添加关键字字段staff_id;在“代理关键字段”处的下拉框中选择staff_key为代理关键字段,并指定“创建代理键”是使用自增字段;在“Stream日期字段”处的下拉框中选择rental_datetime;在“开始日期字段”处的下拉框中选择staff_valid_from;在“截止日期字段”处的下拉框中选择staff_valid_through,如图14所示:

 图14 配置维度查询/更新2控件

12.配置维度查询/更新3控件

双击“维度查询/更新3”控件,进入“维度查询/更新”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击目标表右侧的【浏览】按钮,选择输出的目标表,即维度表dim_store;在“关键字”选项卡处添加关键字字段store_id;在“代理关键字段”处的下拉框中选择store_key为代理关键字段,并指定“创建代理键”是使用自增字段;在“Stream日期字段”处的下拉框中选择rental_datetime;在“开始日期字段”处的下拉框中选择store_valid_from;在“截止日期字段”处的下拉框中选择store_valid_through,如图15所示:

 图15 配置维度查询/更新3控件

13.配置增加常量2控件

双击“增加常量2”控件,进入“增加常量”界面,在字段框中添加常量字段count_rentals,用于统计租赁的次数,如图16所示:

 图16 配置增加常量2控件

14.配置插入/更新控件

双击“插入/更新”控件,进入“插入/更新”界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。单击目标表右侧的【浏览】按钮,弹出“数据库浏览器”窗口,选择目标表,即维度表fact_rental;单击【获取字段】按钮,用来指定查询数据所需要的关键字字段rental_id,用于指定表字段和流字段的比较条件;单击【获取和更新字段】按钮,用来指定需要更新的字段,如图17所示:

 图17 配置插入/更新控件

15.运行load_fact_rental转换

单击转换工作区顶部的按钮,运行创建的转换load_fact_rental,实现加载租赁数据至租赁事实表fact_rental中,如图18所示:

 图18 运行load_fact_rental转换

17.查看事实表fact_rental中的数据

通过SQLyog工具,查看事实表fact_rental是否已成功插入数据,查看结果如图19所示(部分数据):

 图19 查看事实表fact_rental

8.3.10 加载数据库sakila中的数据至数据仓库sakila_dw

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

使用Kettle工具,创建一个作业load_rentals,并添加Start控件、转换控件、发送邮件控件、中止作业控件以及Hop作业项连接线,如图20所示:

 图20 创建作业load_rentals

2.配置转换控件

双击“转换”控件,进入“转换”界面,单击“Transformations”处的【浏览】按钮,选择添加转换load_dim_staff,如图21所示:

 图21 配置转换控件

3.配置转换2控件

双击“转换2”控件,进入“转换”界面,单击“Transformations”处的【浏览】按钮,选择添加转换load_dim_customer,如图22所示:

 图22 配置转换2控件

4.配置转换3控件

双击“转换3”控件,进入“转换”界面,单击“Transformations”处的【浏览】按钮,选择添加转换load_dim_store,如图23所示:

 图23 配置转换3控件

5.配置转换4控件

双击“转换4”控件,进入“转换”界面,单击“Transformations”处的【浏览】按钮,选择添加转换load_dim_actor,如图24所示:

 图24 配置转换4控件

6.配置转换5控件

双击“转换5”控件,进入“转换”界面,单击“Transformations”处的【浏览】按钮,选择添加转换load_dim_film,如图25所示:

 图25 配置转换5控件

7.配置转换6控件

双击“转换6”控件,进入“转换”界面,单击“Transformations”处的【浏览】按钮,选择添加转换load_fact_rental,如图26所示:

 图26 配置转换6控件

8.配置发送邮件控件

双击发送邮件控件,进入“发送邮件”界面,在“地址”选项卡中添加收件人和发件人的信息,在“服务器”选项卡中添加邮件服务器和验证的信息;在“邮件消息”选项卡中添加消息内容,如图27、图28、图29所示:

 图27 配置“地址”选项卡

 图28 配置“服务器”选项卡

 

 图29 配置“邮件消息”选项卡

9.配置发送邮件2控件

双击”发送邮件2”控件,进入“发送邮件”界面,在“地址”选项卡中添加收件人和发件人的信息,在“服务器”选项卡中添加邮件服务器和验证的信息,在“邮件消息”选项卡中添加消息内容,如图30、图31、图32所示:

图30 配置“地址”选项卡

 

 图31 配置“服务器”选项卡

 

  图32 配置“邮件消息”选项卡

10.运行作业load_rentals

单击作业工作区顶部的按钮,运行创建的作业load_ rentals,实现加载数据库sakila中的数据至数据仓库sakila_dw中,如图33所示:

 图33 运行作业load_rentals

11.查看数据仓库sakila_dw中维度表的数据

通过SQLyog工具,查看数据仓库sakila_dw中的维度表和事实表是否已成功插入数据,查看结果如图34、图35、图36、图37、图38、图39、图40、图41所示:

图34 维度表dim_customer中的数据

 图35 维度表dim_date中的数据

 图36 维度表dim_actor中的数据

 图37 维度表dim_film中的数据

图38 维度表dim_film_actor_bridge中的数据

图39 维度表dim_staff中的数据

图40 维度表dim_time中的数据

图41 事实表fact_rental中的数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值