kettle从入门到精通 第四十二课 kettle 1对多表拆分同步
1、在有的业务场景中,会涉及一对多表拆分同步的业务场景,也就是说原表是一张表,将原表字段进行拆分放入目标库中的多张表,如下面的示例将表student_third中的数据
同步到student、teacher 两张表。
数据源表student_third
CREATE TABLE `student_third` (
`id` bigint not NULL primary key auto_increment,
`name` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,
`teacher_name` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,
`createtime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
目标表student、teacher
CREATE TABLE `student` (
`id` bigint not NULL primary key auto_increment,
`name` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,
`teacher_serialno` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`createtime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `teacher` (
`id` bigint not NULL primary key auto_increment,
`serial_no`varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`name` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,
`createtime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
2、下图涉及到的步骤比较简单,表输入【读取三方学生信息表】加载源数据,从student_third表中读取数据,javascript代码【根据teachernameMd5计算出teacherSerialno】通过md5计算外键,表输出【写入学生信息表】写入student表,
分组【按照教师名字分组】按照字段teacher_name进行分组,表输出【写入教师表】将数据写入teacher表。

3、步骤【根据teachernameMd5计算出teacherSerialno】-》步骤【写入学生信息表】、步骤【根据teachernameMd5计算出teacherSerialno】-》步骤【按照教师名字分组】两者是并行的关系,连线需要
是复制模式,如下图所示。

4、步骤【读取三方学生信息表】实现逻辑比较简单,直接从表student_third 读取数据,如下图所示。

5、写入student、teacher两个表需要再同一个事务中,双击画布空白处进行设置即可,如下图所示。

6、步骤【写入学生信息表】实现逻辑比较简单,如下图所示。

7、多个学生的老师有可能是同一位,所以根据老师名字进行分组,如下图所示。

8、步骤【写入教师表】实现逻辑比较简单,如下图所示。


kettle从入门到精通 第四十二课 kettle 1对多表拆分同步的更多相关文章
- NeHe OpenGL教程 第四十二课:多重视口
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 第四十二课:基于CSS的动画引擎
由于低版本浏览器不支持css3 animation,因此我们需要根据浏览器来选择不同的动画引擎.如果浏览器支持css3 animation,那么就使用此动画引擎,如果不支持,就使用javascript ...
- 潭州课堂25班:Ph201805201 django 项目 第四十二课 后台 课程相关,用户组管理 (课堂笔记)
在线课程: 当点击进入页面时,显示所有课程 def get(self, request): courses = Course.objects.select_related('category', 't ...
- 第四十二课 KMP算法的应用
思考: replace图解: 程序完善: DTString.h: #ifndef DTSTRING_H #define DTSTRING_H #include "Object.h" ...
- python第四十二课——__str__(self)函数
4.__str__(self): 作用: 创建完对象,直接打印对象名/引用名我们得到的是对象的内存信息(十六进制的地址信息), 这串数据我们程序员并不关心,我们更希望看到的是属性赋值以后的内容(属性赋 ...
- GPU 编程入门到精通(四)之 GPU 程序优化
博主因为工作其中的须要,開始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程.因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...
- NeHe OpenGL教程 第四十五课:顶点缓存
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第四十八课:轨迹球
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第四十六课:全屏反走样
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
随机推荐
- 力扣342(java)-4的幂(简单)
题目: 给定一个整数,写一个函数来判断它是否是 4 的幂次方.如果是,返回 true :否则,返回 false . 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x 示例 1: 输 ...
- sql中的order by 按列排序
在视频网课的时候,看到老师讲ORDER BY 后面跟了多个列,按列位置排序: SELECT `大类名`,`进价`,`售价` FROM `商品表` ORDER BY `大类名`,`售价` DESC; 这 ...
- 阿里云张新涛:连接产业上下游,构建XR协作生态
简介: 用交互技术辅以澎湃的算力带给大家最真实的"沉浸式体验" 2022年9月2日,在世界人工智能大会"区块新生 数字宇宙--元宇宙技术与生态合作"分论坛上,阿 ...
- Joint Consensus两阶段成员变更的单步实现
简介: Raft提出的两阶段成员变更Joint Consensus是业界主流的成员变更方法,极大的推动了成员变更的工程应用.但Joint Consensus成员变更采用两阶段,一次变更需要提议两条日 ...
- [GPT] jquery chosen插件选择的多个元素是逗号分隔的,怎么设置成其它分隔符号 ?
如果你想要在 jQuery Chosen 插件中使用其它分隔符号,可以通过以下方式实现: 1. 设置 delimiter 选项为一个包含所需分隔符的字符串. $(".chosen-selec ...
- [FE] 实时视频流库 hls.js 重载切换资源的方式
hls 播放需要先 attachMedia,然后 loadSource. 如果切换 resource,需要先执行 hls.destroy(),否则会出现混乱. destroy 之后再依次进行 hls ...
- dotnet SemanticKernel 入门 调用原生本机技能
本文将告诉大家如何在 SemanticKernel 里面调用原生本机技能,所谓原生本机技能就是使用 C# 代码编写的原生本地逻辑技能,这里的技能可讲的可不是游戏角色里面的技能哈,指的是实现某个功能的技 ...
- dotnet Microsoft.Recognizers.Text 超强大的自然语言关键词提取库
本文和大家介绍一个使用超级简单,但是功能特别强大的自然语言关键词提取库,可以根据输入的自然语言提取出里面的信息.例如我在一句话里面说了哪些数值变量或者说了手机号码等 先看看下图的一个效果,下图是尝试识 ...
- 2019-8-31-C#-简单读取文件
title author date CreateTime categories C# 简单读取文件 lindexi 2019-08-31 16:55:58 +0800 2018-07-19 16:48 ...
- k8s应用---持久化存储和StorageClass(10)
一.简介: 在 k8s 中为什么要做持久化存储? 在 k8s 中部署的应用都是以 pod 容器的形式运行的,假如我们部署 MySQL.Redis 等数据库,需要 对这些数据库产生的数据做备份.因为 P ...