黑马程序员《数据清洗》学习笔记第八章综合案例(2)

目录

第八章综合案例(2)

8.3.5  加载用户数据至用户维度表

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

2.配置表输入控件

3.配置表输入2控件

4.打开Kettle工具,新建转换

5.配置映射输入规范控件

6.配置数据库查询控件

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

8.配置数据库查询3控件

9.配置过滤记录控件

10.配置JavaScript代码控件

11.配置字段选择控件

12.配置映射控件

13.配置字段选择控件

14.配置值映射控件

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

16.运行load_dim_customer转换

17.查看数据表dim_customer中的数据

8.3.6  加载商店数据至商店维度表

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

2.配置表输入控件

3.配置表输入2控件

4.配置映射控件

5.配置数据库查询控件

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

7.运行load_dim_store转换

8.查看数据表dim_store中的数据


第八章综合案例(2)

案例【8.3.5        8.3.6】

         需要从MySQL官网下载数据库sakila的建库脚本,若是在Windows环境下安装数据库sakila,下载名称为sakila_bd.zip的压缩包文件;若是在Linux环境下安装数据库sakila,下载名称为sakila_bd.tar.gz的压缩包。需要导入压缩包中的文件,下载MySQL关系型数据库,SQLyog工具。

8.3.5  加载用户数据至用户维度表

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

        使用Kettle工具,创建一个转换load_dim_customer,并添加表输入控件、映射控件、字段选择控件、值映射控件、维度查询/更新控件以及Hop跳连接线,具体如图8-1。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第1张图片

 图 8-1

2.配置表输入控件

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第2张图片

图 8-2 

        在SQL框中编写用于获取字段customer_last_update中的最大值,将该值替换为”1970-01-01 00:00:00”并赋值给临时字段max_dim_customer_last_update(代码如下);单击“预览”按钮,查看临时字段max_dim_customer_last_update是否将默认值设置为“1970-01-01 00:00:00”,如图8-3。

SELECT
COALESCE(MAX(customer_last_update),"1970-01-01 00:00:00")
AS max_dim_customer_last_update
FROM dim_customer

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第3张图片

 图 8-3

3.配置表输入2控件

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第4张图片

 图 8-4

        在SQL框中编写SQL语句(代码如下),用于获取数据库sakila中数据表customer中的最新数据,如图8-5。

SELECT
  customer_id
, store_id
, first_name
, last_name
, email
, address_id
, active
, create_date
, last_update
FROM customer where last_update > ?

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第5张图片

 图 8-5

4.打开Kettle工具,新建转换

        使用Kettle工具,创建一个转换fetch_address(该转换为转换load_dim_customer的子转换),并添加映射输入规范控件、数据库查询控件、过滤记录控件、JavaScript代码控件、字段选择控件以及Hop跳连接线,如图8-6。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第6张图片

图 8-6 

5.配置映射输入规范控件

        双击“映射输入规范”控件,进入“Mapping input specification”界面,并添加映射的字段“address_id”,该字段为传递的参数(由于转换load_dim_customer中表输入2控件流获取的字段address_id,用于查询用户的地址信息,而后续数据仓库的维度表数据也需要用户的地址信息,因此这里将字段address_id作为传递的参数),添加完毕后单击【确定】按钮,完成“映射输入规范”控件的配置,如图8-7。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第7张图片

图 8-7 

6.配置数据库查询控件

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第8张图片

图 8-8 

        单击名右侧的【浏览】按钮,添加数据表address;在“查询所需的关键字”框中,添加查询所需的关键字字段address_id,由于该字段是唯一的,因此可作为数据表address中数据和映射输入规范控件流中数据的比较条件;在“查询表返回的值”框中,添加查询表返回的值,如图8-9。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第9张图片

图 8-9 

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

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第10张图片

图 8-10 

        单击表名处的【浏览】按钮,添加数据表city;在“查询所需的关键字”框中,添加查询所需的关键字字段city_id,作为数据表city中数据和数据库查询2控件流中数据相比较的条件;在“查询表返回的值”框中,添加查询表返回的值,如图8-11。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第11张图片

图 8-11 

8.配置数据库查询3控件

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第12张图片

图 8-12 

        单击表名处的【浏览】按钮,添加数据表country;在“查询所需的关键字”框中,添加查询所需的关键字字段country_id,用于指定字段流与表字段的数据进行比较的比较条件;在“查询表返回的值”框中,添加查询表返回的值,如图8-13。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第13张图片

图 8-13 

9.配置过滤记录控件

        双击“过滤记录”控件,进入“过滤记录”配置界面,在“条件”处设置过滤的条件,对有第二个地址的用户进行过滤操作;单击左边“”框,弹出字段对话框,选择要过滤的字段address2,如图8-14。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第14张图片

图 8-14 

        单击“=”框,弹出函数对话框,选择过滤条件(这里选择的是IS NOT NULL),即过滤指定字段中不为空的数据,单击【确定】按钮,完成过滤条件的选择。字段address2的过滤设置如图8-15。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第15张图片

图 8-15 

10.配置JavaScript代码控件

        双击“JavaScript代码”控件,进入“JavaScript代码”配置界面,勾选“兼容模式?”处的复选框,使得JavaScript代码控件的兼容性更强;在Java Script代码框中编写代码(代码如下),如图8-16。

//Script here
var address = address.getString() + " " + address2.getString();

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第16张图片

图 8-16 

11.配置字段选择控件

        双击“字段选择”控件,进入“选择/改名值”界面,在“元数据”选项卡的“移除”处添加要移除的字段,如图8-17。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第17张图片

图 8-17 

12.配置映射控件

        此时需要切换到转换load_dim_customer,双击“映射”控件,进入“映射”界面,单击“转换”选项卡处的【Browser】按钮,选择添加转换fetch_address,用于获取用户的地址信息,如图8-18。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第18张图片

图 8-18 

13.配置字段选择控件

        双击步骤1中的“字段选择”控件,进入“选择/改名值”界面,在“元数据”选项卡的“需要改变元数据的字段”处添加字段active,由于数据表customer中字段active的类型为tinyint,因此需要将字段active的类型改为String,与维度表dim_customer中字段customer_active的类型相对应,如图8-19。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第19张图片

图 8-19 

14.配置值映射控件

        双击“值映射”控件,进入“值映射”界面,在“使用的字段名”处的下拉框选择字段active;在“字段值”框中,添加源值和目标值,由于数据表customer中字段active的值为1和0,对应的是Y和N,这里将Y替换成Yes,将N替换成No,如图8-20。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第20张图片

 图 8-20

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

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第21张图片

图 8-21 

        单击目标表右侧的【浏览】按钮,选择输出的目标表,即维度表dim_customer;在“关键字”选项卡处添加关键字字段customer_id,用于指定维度表字段和流字段的比较条件,如图8-22。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第22张图片

图 8-22 

        在“字段”选项卡处添加查询/更新字段(字段选择卡如下表);在“代理关键字段”处的下拉框中选择customer_key为代理关键字段,并指定“创建代理键”是使用自增字段;在“Version字段”处的下拉框中选择customer_version_number;在“Stream日期字段”处的下拉框中选择last_update;在“开始日期字段”处的下拉框中选择customer_valid_from;在“截止日期字段”处的下拉框中选择customer_valid_through,如图8-23。

字段选择卡
# 维字段 比较的流字段 更新的维度类型
1 customer_first_name first_name 插入
2 customer_last_name last_name 插入
3 customer_email email 插入
4 customer_active active 插入
5 customer_created create_date 插入
6 customer_address address 插入
7 customer_district district 插入
8 customer_postal_code postal_code 插入
9 customer_phone_number phone 插入
10 customer_city city 插入
11 customer_city country 插入
12 customer_last_update last_update 插入

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第23张图片

图 8-23 

16.运行load_dim_customer转换

        单击转换工作区顶部的运行按钮,运行创建的转换load_dim_customer,实现加载用户数据至用户维度表dim_customer中,如图8-24。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第24张图片

图 8-24 

17.查看数据表dim_customer中的数据

        通过SQLyog工具,查看数据表dim_customer是否已成功插入用户数据,查看结果如图8-25。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第25张图片

图 8-25 

8.3.6  加载商店数据至商店维度表

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

目录

8.3.5  加载用户数据至用户维度表

4.打开Kettle工具,新建转换

5.配置映射输入规范控件

6.配置数据库查询控件

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

8.配置数据库查询3控件

9.配置过滤记录控件

10.配置JavaScript代码控件

11.配置字段选择控件

12.配置映射控件

13.配置字段选择控件

14.配置值映射控件

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

16.运行load_dim_customer转换

17.查看数据表dim_customer中的数据

8.3.6  加载商店数据至商店维度表

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

2.配置表输入控件

3.配置表输入2控件

        使用Kettle工具,创建一个转换load_dim_store,并添加表输入控件、映射控件、数据库查询控件、维度查询/更新控件以及Hop跳连接线,具体如图8-26。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第26张图片

图 8-26 

2.配置表输入控件

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第27张图片

图 8-27 

        在SQL框中编写SQL语句(代码如下),用于获取字段store_last_update中的最大值,将该值替换为”1970-01-01 00:00:00”并赋值给临时字段max_dim_store_last_update;单击“预览”按钮,查看临时字段max_dim_store_last_update是否将默认值设置为“1970-01-01 00:00:00” ,如图8-28。

SELECT
COALESCE(MAX(store_last_update),"1970-01-01 00:00:00")
AS max_dim_store_last_update
FROM dim_store

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第28张图片

图 8-28 

3.配置表输入2控件

        双击“表输入2”控件,进入“表输入”配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置;在SQL框中编写SQL语句(代码如下),用于获取sakila数据库中store数据表中的最新数据如图8-29。

SELECT
  store_id
, manager_staff_id
, address_id
, last_update
FROM store where last_update > ?

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第29张图片

图  8-29 

4.配置映射控件

        双击“映射”控件,进入“映射”界面,单击“转换”选项卡处的【Browser】按钮,选择添加转换fetch_address,用于获取用户的地址信息,如图8-30。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第30张图片

图 8-30 

5.配置数据库查询控件

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第31张图片

图 8-31 

        单击表名右侧的【浏览】按钮,添加staff数据表,用于查询商店员工的信息;在“查询所需的关键字”框中,添加查询所需的关键字staff_id,用于指定表字段和流字段的比较条件;在“查询表返回的值”框中,添加查询表返回的值,即员工姓名,如图8-32。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第32张图片

图 8-32 

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

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

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第33张图片

图 8-33 

        单击【浏览】按钮,选择输出的目标表,即维度表dim_store;在“关键字”选项卡处添加关键字字段store_id,用于指定维度表字段和流字段的比较条件,如图8-34。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第34张图片

图 8-34 

        在“字段”选项卡处添加查询/更新字段,用于指定维度表字段store_id和流字段store_id数据一致需要更新的字段,;在“代理关键字段”处的下拉框中选择store_key为代理关键字段,并指定“创建代理键”是使用自增字段;在“Version字段”处的下拉框中选择store_version_number;在“Stream日期字段”处的下拉框中选择last_update;在“开始日期字段”处的下拉框中选择store_valid_from;在“截止日期字段”处的下拉框中选择store_valid_through,如图8-35。

字段选择卡内容
# 维字段 比较的流字段 更新的维度的类型
1 store_manager_staff_id manager_staff_id 插入
2 store_last_update last_update 插入
3 store_address address 插入
4 store_district district 插入
5 store_postal_code postal_code 插入
6 store_phone_number phone 插入
7 store_city city 插入
8 store_country country 插入
9 store_manager_first_name first_name 插入
10 store_manager_last_name last_name 插入

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第35张图片

图 8-35 

7.运行load_dim_store转换

        单击转换工作区顶部的运行按钮,运行创建的转换load_dim_store,实现加载商店数据至商店维度表dim_store中,如图8-36。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第36张图片

图 8-36 

8.查看数据表dim_store中的数据

        通过SQLyog工具,查看数据表dim_store是否已成功插入商店数据,查看结果如图8-37。

黑马程序员《数据清洗》学习笔记第八章综合案例(2)_第37张图片

图 8-37 

你可能感兴趣的:(黑马程序员《数据清洗》学习笔,etl,数据库,database)