kettle组件【维度查询/更新】的用法

通过维度查询/更新实现拉链表
拉链表是针对数据仓库设计中表存储数据的方式而定义的,即记录历史,记录一个事务从开始,一直到当前状态的所有变化的信息。
1. 逻辑分析
  1. 创建数据表、添加示例数据
  2. 抽取源数据,通过kettle组件【维度查询/更新】来实现维表中的start_date与end_date首尾相连,实现该人员的每个状态都保存在维表当中。
  3. 通过组件来维护【维度查询/更新】组件的一个小bug。
2. 见图如见物

示例数据
在这里插入图片描述

绿线代表张三的电话号码更新,红色代表李四的职级的更新,可以清晰的看出两条数据更新且start_date与end_date首尾相连。、在这里插入图片描述
在这里插入图片描述

3. 实现步骤
  1. 示例数据
CREATE TABLE user_source(
user_id int,
name varchar(8),
job_title varchar(8),
phone varchar(16)
);
 
-- 创建用户维度表
CREATE TABLE user_dimension_table(
agency_it int,
user_id int,
name varchar(8),
job_title varchar(8),
phone varchar(16),
versionno int,
start_date date,
end_date date
);
 
-- 清空原始数据
TRUNCATE TABLE user_source;
TRUNCATE TABLE user_dimension_table;
 
-- 初始化员工数据
INSERT INTO user_source VALUES(1,'张三','CTO','13613518884');
INSERT INTO user_source VALUES(2,'李四','CFO','15321587651');


  1. KETTLE脚本配置过程
    1. 表输入【抽取源表的数据,添加当前时间字段】在这里插入图片描述
    2. 维度查询/更新
      1. 配置数据库连接
      2. 配置目标表【维度表】
      3. 配置关联字段【源表与目标表】
      4. 配置代理关联字段【目标表】、相当于二级关联字段吧(个人理解)
      5. 配置版本字段【目标表】、数据更新的版本号
      6. 配置stream日期字段、当前时间
      7. 配置开始时间【目标表】、数据的发生时间
      8. 配置结束时间【目标表】、数据的结果时间
      9. 配置更新、插入字段【源表与目标表】。
        在这里插入图片描述
        在这里插入图片描述
    3. 阻塞数据直到步骤都完成
      执行sql前需要先阻塞任务,否则sql脚本优先级较高
      在这里插入图片描述
    4. 执行SQL脚本
      delete from user_dimension_table where user_id is null
      在这里插入图片描述
    5. 脚本测试
      1. 执行完示例数据,此时你有user_source表有数据,user_dimension_table表无数据。
      2. 执行上述配置的kettle程序,此时user_dimension_table有数据且与user_source表相同。
      3. 执行更新user_source【源表】的更新SQL脚本
        -- 更新员工数据
        UPDATE user_source SET phone='16666666666' WHERE user_id = 1;
        UPDATE user_source SET job_title='COOOOOO' WHERE user_id = 2;
        
      4. 查询user_source【源表】的数据、数据已经发生改变。
        SELECT * FROM user_source;
        在这里插入图片描述
      5. 执行kettle程序,并且查看user_dimension_table的数据
        SELECT * FROM user_dimension_table ORDER BY user_id
        在这里插入图片描述

相关内容

kettle组件HTTP client的使用方法
https://blog.csdn.net/weixin_43932609/article/details/123984884?spm=1001.2014.3001.5502
Kettle循环导出整库数据
https://blog.csdn.net/weixin_43932609/article/details/119610480?spm=1001.2014.3001.5502
ETL工具kettle的计算方式
https://blog.csdn.net/weixin_43932609/article/details/110371110
Kettle工具中Rest client组件的用法!!
https://blog.csdn.net/weixin_43932609/article/details/109988783
ETL工具kettle的Excel合并操作
https://blog.csdn.net/weixin_43932609/article/details/109326043

=========================================================

人生得意须尽欢,莫使金樽空对月!
__一个热爱说唱的程序员。
今日份推荐音乐:杨和苏KeyNG《没有未来》

=========================================================

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像豆芽一样优秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值