《数据清洗》 第八章 综合案例(8.3.5-8.3.6)

目录

1.加载用户数据至用户维度表

1.1.1打开Kettle工具,创建转换

1.1.2配置“表输入”控件

1.1.3配置“表输入2”控件

1.2.1打开Kettle工具,创建转换

1.2.2配置“映射输入规范”控件

1.2.3配置“数据库查询”控件

1.2.4配置“数据库查询2”控件

1.2.5配置“数据库查询3”控件

1.2.6配置“过滤记录”控件

1.2.7配置“JavaScript代码”控件

1.2.8配置“字段选择”控件

1.2.9配置“映射”控件

1.2.10配置“字段选择”控件

1.2.11配置“值映射”控件

1.2.12配置“维度查询/更新”控件

1.2.13运行转换load_dim_customer

1.2.14查看维度表dim_customer中的数据

2.加载商店数据至商店维度表

2.1打开Kettle工具,创建转换

2.2配置“表输入”控件

2.3配置“表输入2”控件

2.4配置”映射“控件

2.5配置”数据库查询“控件

2.6配置“维度查询/更新”控件

2.7运行转换load_dim_store

2.8查看维度表dim_store中的数据


1.加载用户数据至用户维度表

1.1.1打开Kettle工具,创建转换

转换load_dim_customer,并添加“表输出”控件、“映射(子转换)”控价、“字段选择”控件、值映射控件、“维度查询/更新”控件,以及Hop跳连接线

1.1.2配置“表输入”控件

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

在SQL数据框中编写用于获取字段customer_last_update中的最大值,将该值替换成1970-01-01 00:00:00并赋值给临时字段max_dim_customer_last_uodate;单击“预览”按钮,查看临时字段max_dim_customer_last_uodate是否将默认值视为1970-01-01 00:00:00

1.1.3配置“表输入2”控件

进入“表输入2”界面,单击新建按钮,配置数据库连接,配置完成后单击“确认”按钮,在SQL框中编写SQL语句,用于获取数据库sakila中的数据表customer中的最新数据,单击“确认”按钮,完成“表输入2”的配置,这里需要注意的是,获取数据表customer的最新数据中包含字段address_id,因此需要创建一个子转换

1.2.1打开Kettle工具,创建转换

创建转换fetch_address,并添加“映射输入规范”控件,“数据库查询”控件,“过滤记录控件,“JavaScript代码”控件,“字段选择”控件、“映射输出规范”控件以及Hop跳连接线

1.2.2配置“映射输入规范”控件

添加映射字段address_id,该字段为传递的参数,添加完毕后单击“确认”按钮,完成“映射输入规范”控件的配置

1.2.3配置“数据库查询”控件

双击数据库查询控件,进入数据库查询界面,单击“新建”按钮,配置数据库连接,配置完成后单击确认按钮,单击“浏览”按钮,添加数据表address;在“查询所需关键字”框address中数据和“映射输入规范”控件流中数据的比较条件

1.2.4配置“数据库查询2”控件

双击“数据库查询2”控件,进入“数据库查询”界面,单击“新建”按钮,配置数据库连接,配置完成后单击“确认”按钮,单击表中浏览按钮后,添加数据表city,在“查询所需的关键字”框中添加查询所需的关键字字段city_id,作为数据表city中数据与“数据库查询2”控件流中数据比较条件,在“查询表返回值”框中添加查询表返回值

1.2.5配置“数据库查询3”控件

双击图中“数据库查询3”控件,进入“数据库查询3”界面,单击“新建”按钮,配置数据库连接,配置完成后单击“确认”按钮

单击“浏览”按钮,添加数据表country;在“查询所需关键字”框中添加查询所需的关键字字段country_id,用作制定数据流与表字段的数据进行比较条件,在“查询表返回的值”框中添加查询表返回的值

1.2.6配置“过滤记录”控件

进入过滤记录界面,“条件”处设置过滤条件,对有第二个地址的用户进行过滤操作,单击右边的框,弹出“字段”对话框,选择要过滤的字段address2,单击“=”框,弹出“函数:”对话框,选择过滤条件,即指定过滤不为空的数据

在图中“发送true数据给步骤:”后的下拉列表中选择“JavaScript代码”,将有第二个地址的用户放在JavaScript控件中,用于后续操作,在“发送false数据给步骤”后的下拉列表中选择“字段选择”,将没有第二个地址的用户进行字段选择处理

1.2.7配置“JavaScript代码”控件

进入“JavaScript代码”
界面,勾选“兼容模式”,复选框,使得“JavaScript代码”控件的兼容性更强,在“JavaScript代码”代码框中编写代码

1.2.8配置“字段选择”控件

进入“选择/改名值”界面,在“移除”选项卡的“移除的字段:”处添加要移除的字段

1.2.9配置“映射”控件

在“映射”控件,进入“映射”界面,单击“转换”处的Browser按钮,选择添加转换fetch_address,用于获取用户的地址信息

1.2.10配置“字段选择”控件

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

1.2.11配置“值映射”控件

进入值映射界面,在“使用字段名”后的下拉列表中选择字段active;在“字段值”框中添加源值和目标值,由于数据表customer中字段active的值为1和0,对应的是Y和N,这里将Y替换为Yes,将N替换为No

 

1.2.12配置“维度查询/更新”控件

双击“维度查询/更新”控件,进入“维度查询/更新”界面,单击“新建”按钮,配置数据库连接,配置完成后单击“确认”按钮。
单击目标表右侧得“浏览”按钮,选择输出目标表,即维度表dim_customer,在“关键字”选项卡添加字段customer_id,用于指定维度表字段,和流字段的比较条件。在“字段”选项卡处添加查询/更新字段。“代理关键字段”后的下拉列表中选择customer_key为关键代理字段,并指定“创建代理键”,为使用自增字段,在“Version字段”后的下拉列表中选择customer_version_number,在“Stream日期字段”后的下拉列表中选择last_update,在“开始日期字段”后的下拉列表中选择customer_vaild_from,在“截止日期字段”后的下拉列表中选择customer_vaild_through

1.2.13运行转换load_dim_customer

1.2.14查看维度表dim_customer中的数据


2.加载商店数据至商店维度表

2.1打开Kettle工具,创建转换

创建转换load_dim_store,并添加“表输入”控件吗,“映射(转换)”控件,“数据库查询”控件,“维度查询/更新”控件,以及Hop跳连接线

2.2配置“表输入”控件

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

在SQL框中编写代码

2.3配置“表输入2”控件

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

在SQL框中编写代码

2.4配置”映射“控件

双击“映射(字转换)”控件,进行“映射(执行子转换任务)”界面,单击“转换”处的Browser按钮,选择添加fetch_address,用于获取用户的地址信息

2.5配置”数据库查询“控件

双击图中数据库查询控件,进入数据库查询界面,单击新建按钮,配置数据库连接,单击“确认”按钮。单击“浏览”按钮,添加数据表staff_id,用于指定字段和流字段的比较条件,在“查询表返回值”框中添加查询表返回值,即员工姓氏和名字

2.6配置“维度查询/更新”控件

双击“维度查询/更新”控件,进入“维度查询/更新”界面,配置数据库连接

单击“浏览”按钮,选择输出的目标表,即维度表dim_store,在“关键字”选项卡添加关键字段store_id,用于指定维度表字段和流字段的比较条件,在“字段”选项卡中添加查询/更新字段,用于指定维度表字段store_id和流字段store_id,数据一致需要更新字段,在“代理字段”后的下拉列表中选择“store_key”,并指定“创建代理键”为使用自增字段,在“Version字段”后的下拉列表中选择store_version_number;在“Stream日期字段”后的下拉列表中选择last_update,在“开始日期”字段后的下拉列表选择store_valid_from;在“截止日期字段”后的下拉列表选择store_vaild_through

2.7运行转换load_dim_store

2.8查看维度表dim_store中的数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值