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 ...
随机推荐
- 力扣1454(MySQL)-活跃用户(中等)
(非会员进不去,看的其他博主的题目) 问题: 写一个 SQL 查询, 找到活跃用户的 id 和 name. 活跃用户是指那些至少连续 5 天登录账户的用户. 返回的结果表按照 id 排序. 解题思路 ...
- 一文读懂 BizDevOps:数字化转型下的技术破局
简介: 目标.方法与实践. 我们正迈向数字经济时代,数字化转型成为普遍行动.未来绝大多数业务都将运行在数字基座之上,软件系统成为业务创新和发展的核心引擎.在这一趋势下,产品研发的交付能力面临巨大挑战, ...
- 【产品能力深度解读】连续入围Gartner魔力象限的Quick BI有何魔力?
简介: 国际权威分析机构Gartner发布2021年商业智能和分析平台魔力象限报告,阿里云Quick BI再度入选,并继续成为该领域魔力象限唯一入选的中国企业. Quick BI凭借在增强分析能力上的 ...
- 重磅发布 阿里云数据中台全新产品DataTrust聚焦企业数据安全保障
简介: DataTrust(隐私增强计算产品)是基于阿里云底层多项基础安全能力,经过阿里云数据中台丰富的客户业务实践,构建的一款为企业数据安全流通的产品. 随着包括零售.制造.金融等多行业数字化转型加 ...
- LlamaIndex 高层次概念
本篇内容为您快速介绍在构建基于大型语言模型(LLM)的应用程序时会频繁遇到的一些核心概念. 增强检索生成(RAG) LLM 是基于海量数据训练而成,但并未涵盖您的具体数据.增强检索生成(Retriev ...
- WPF 切换主题使用 luna 复古版本
本文告诉大家如何在 WPF 里面使用 luna 等复古主题 今天在 lsj 说他准备优化 WPF 的程序集时,准备删除 luna 等程序集时,找到了一段有趣的注释,发现在 WPF 里面可以通过一些有趣 ...
- 2018-8-29-dotnet-core-2.1-使用阶梯编译
title author date CreateTime categories dotnet core 2.1 使用阶梯编译 lindexi 2018-08-29 08:49:12 +0800 201 ...
- Petalinux 基本工程的构建
Petalinux 基本工程的构建 在上一节,我们安装好linux了,这一节,我们搭建一个简单的工程测试一下,并通过TF卡启动 电脑环境 vivado版本:2019.2 petalinux版本:201 ...
- 使用WebSocket实现实时多人答题对战游戏
前言 前两章教程,我们使用WebSocket的基础特性打造了一个小小聊天室,并在第二章对其进行了集群化改造. 系列教程回顾: [WebSocket]第一章:手把手搭建WebSocket多人在线聊天室( ...
- JavaScript算法---基础排序类
<html> <script> //正序排序,把大的放到最后,arr[j]>arr[j+1] let fz=(arr)=>{ for(let len=arr.len ...