IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> kettle组件【维度查询/更新】的用法 -> 正文阅读

[大数据]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《没有未来》

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

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-16 11:21:36  更:2022-05-16 11:22:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/29 8:44:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码