02 2024 档案
摘要:1、kettle插件是什么 kettle本身有足够多的转换或者job步骤,但是依然不能覆盖所有的业务场景,所以Kettle 自定义插件在有些独特的业务场景可以大显身手。 Kettle的插件架构使得我们可以不用修改Kettle本身代码,通过一些独立的代码就可以扩展Kettle的功能。这些独立的代码称为
阅读全文
摘要:1、kettle自带的客户端spoon工具是cs架构,多人协同办公起来不是特别方便。当然spoon也可以通过文件仓库设置为database模式进行协同办公。每个人在自己电脑上安装&打开spoon客户端,然后设置相同的文件仓库地址。如下图所示。 2、Web-based Spoon(也称为webSpoo
阅读全文
摘要:1、上一节课我们学习了mongo input读取步骤,本节课我们一起学习下mongo out 写入步骤,该步骤可以将数据写入到mongo中,如下图所示。 2、 配置mongo连接,有两种方式,如截图所示。 Connection String:如String connectionString = "m
阅读全文
摘要:1、kettle 9.3/9.4 spoon客户端中默认是没有redis步骤的,首先想到在kettle的插件市场进行下载redis步骤。 2、可能因为网络原因,直接下载失败了。索性放弃redis原有插件步骤,改为自己通过java代码进行实现,(有java基础的可以通过java代码步骤结合自定义jar
阅读全文
摘要:1、我们平常在写应用程序的时候,会有去重的业务场景,可以在数据库层面解决,也可以在内存层面解决。 同样kettle也有去重的步骤【唯一行(哈希值)】和【去除重复记录】 唯一行(哈希值):使用 HashSet 来删除重复行,只保留唯一的行。 去除重复记录(Unique Rows):删除重复行,只保留唯
阅读全文
摘要:1、上一节课我们学习了1对多表拆分数据同步,本节课我们一起学习多对1数据同步,也就是说多张表关联之后的结果集写入一张表。 我们平常在写java应用的时候多表关联一般有两种方式: a、通过sql 语句的join 进行关联。 b、将多个表的数据集加载到内存中通过java代码进行关联。 同样在kettle
阅读全文
摘要:1、在有的业务场景中,会涉及一对多表拆分同步的业务场景,也就是说原表是一张表,将原表字段进行拆分放入目标库中的多张表,如下面的示例将表student_third中的数据 同步到student、teacher 两张表。 数据源表student_third CREATE TABLE `student_t
阅读全文
摘要:1、上一课我们学习了在数据量大的情况下的分页全量同步示例,本次我们一起学习下kettle 增量全量同步。有些业务场景不需要实时数据,比如每N分钟抽取一次数据等。 2、kettle增量全量同步示例依然基于test数据库,从t1表增量同步数据到t2表,假定每N(这里的N可以根据业务场景自定义job触发频
阅读全文
摘要:1、大家都知道,我们在平常写java或者C#等代码时,如果涉及操作多个表时为了保持数据一致性需要开启事务,同样kettle也支持事务,今天我们一起来学习下kettle 单个转换文件内的事务特性。 转换文件中的步骤是并行执行的,每个步骤都打开一个独立的数据库连接并开始一个事务。尽管这样在很多情况下会提
阅读全文
摘要:1、上一课我们学习了在数据量大的情况下的分页全量同步示例,本次我们一起学习下kettle 增量全量同步。有些业务场景不需要实时数据,比如统计t-1日的销售业绩情况等。 2、kettle增量全量同步示例依然基于test数据库,从t1表增量同步数据到t2表,假定每天0点跑批将t1表中的t-1日的数据同步
阅读全文
摘要:1、上一课我们学习了在数据量小的情况下的全量同步示例,本次我们一起学习下kettle 分页全量同步。 2、kettle分页全量同步示例依然基于test数据库,从t1表全量同步数据到t2表,由于t1表的数据比较大,所以选择分页全量同步策略,如下图所示。 前提: a、基于mysql 数据库 b、分页查询
阅读全文