8.3 案例实现(加载租赁数据至租赁事实表)

操作介绍:

通过Kettle工具加载租赁数据至租赁事实表fact_rental。

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

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

2.配置表输入控件

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

在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.配置表输入2控件

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

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

4.配置字段选择控件

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

5.配置过滤记录控件

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

6.配置计算器控件

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

7.配置增加常量控件

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

8.配置数据库查询控件

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

单击表名右侧的【浏览】按钮,添加数据表inventory,用于查询电影库存的信息;在“查询所需的关键字”框中,添加查询所需的关键字字段inventory_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回的值,即字段film_id和store_id的数据,如图所示。

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

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

单击表名右侧的【浏览】按钮,添加维度表dim_film,用于获取数据仓库中维度表dim_film中的数据;在“查询所需的关键字”框中,添加查询所需的关键字字段film_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回的值,即字段film_key,如图所示。

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

双击“维度查询/更新”控件,进入“维度查询/更新”界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置,具体如图所示。

单击目标表右侧的【浏览】按钮,选择输出的目标表,即维度表dim_customer;在“关键字”选项卡处添加关键字字段;在“代理关键字段”处的下拉框中选择customer_key为代理关键字段,并指定“创建代理键”是使用自增字段;在“Stream日期字段”处的下拉框中选择rental_datetime;在“开始日期字段”处的下拉框中选择customer_valid_from;在“截止日期字段”处的下拉框中选择customer_valid_through,如图所示。

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

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

单击目标表右侧的【浏览】按钮,选择输出的目标表,即维度表dim_staff;在“关键字”选项卡处添加关键字字段staff_id;在“代理关键字段”处的下拉框中选择staff_key为代理关键字段,并指定“创建代理键”是使用自增字段;在“Stream日期字段”处的下拉框中选择rental_datetime;在“开始日期字段”处的下拉框中选择staff_valid_from;在“截止日期字段”处的下拉框中选择staff_valid_through,如图所示。

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

双击“维度查询/更新3”控件,进入“维度查询/更新”界面。单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置,如图所示。

单击目标表右侧的【浏览】按钮,选择输出的目标表,即维度表dim_store;在“关键字”选项卡处添加关键字字段store_id;在“代理关键字段”处的下拉框中选择store_key为代理关键字段,并指定“创建代理键”是使用自增字段;在“Stream日期字段”处的下拉框中选择rental_datetime;在“开始日期字段”处的下拉框中选择store_valid_from;在“截止日期字段”处的下拉框中选择store_valid_through,如图所示。

13.配置增加常量2控件

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

14.配置插入/更新控件

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

单击目标表右侧的【浏览】按钮,弹出“数据库浏览器”窗口,选择目标表,即维度表fact_rental;单击【获取字段】按钮,用来指定查询数据所需要的关键字字段rental_id,用于指定表字段和流字段的比较条件;单击【获取和更新字段】按钮,用来指定需要更新的字段,如图所示。

15.运行load_fact_rental转换

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

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

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

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值