首页 > 数据库 >使用Kettle定时从数据库A刷新数据到数据库B

使用Kettle定时从数据库A刷新数据到数据库B

时间:2023-04-06 20:22:08浏览次数:32  
标签:同步 转换 数据库 Kettle MySQL 定时 数据

一、需求背景

由于项目场景原因,需要将A库(MySQL)中的表a、表b、表c中的数据定时T+1 增量的同步到B库(MySQL)。这里说明一下,不是数据库的主从备份,就是普通的数据同步。经过技术调研,发现Kettle挺合适的,原因如下:

  1. Kettle (数据抽取、清洗、转换、装载)是由java 编写,可以在 Window、Linux、Unix 上运行。支持多数据源, 多种中间件的专业ETL 工具;
  2. 可视化界面支持图形化GUI设计界面,组件多样性,支持组件拖拉拽,不用写额外的代码;
  3. Kettle的流程图本质上都是配置文件,如.ktr/.kjb文件。这种设计的好处就是,当我们把转换流程图画完之后,可以直接复制到另外一个环境中运行,如:在Windows电脑上画好流程图,复制到Liunx系统上运行
  4. 免费、组件多、支持开源,一般处理T+1的数据同步是没有问题的。如果并发高、数据量大就建议使用Flink了。

二、使用方式

1. 安装包下载

官网地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/

2. 启动方式

Windows点击Spoon.bat启动

出现以下图片表示正在启动,如果一直没有反应,使用管理员身份运行

主界面如下:

三、连接MySQL数据库

1. 准备MySQL连接驱动jar包

由于Kettle自身是不带任何数据库驱动包的,所以这里我们需要先自己准备好驱动包,版本最好选择5.1.49。下载好jar包后,拷贝到lib目录下(Windows和Linux同理)。如果已经启动了Kettle,则需要关掉重新启动,否则驱动包不会被加载。

2. 创建数据源

依次点击:转换——>主对象树——>DB连接——>点击新建——>测试

同上操作,创建好两个数据源:源数据库、目标库;目标就是将源数据库中的表数据同步到目标库中去

3. 配置转换流程

① 加入输入节点:转换——>输入——>表输入

② 双击输入节点打开配置页,输入一下信息

这里因为我是定时T+1 增量同步数据,所以我加了个同步条件WHERE gmt_create >= CURDATE()表示该数据创建时间大于当天才会进行查询。

点击预览,正好有一条数据

③加入转换节点:转换——>插入/更新——>按住shift建立连接

④ 双击插入/更新节点,打开配置页

⑤ 点击运行测试

标签:同步,转换,数据库,Kettle,MySQL,定时,数据
From: https://www.cnblogs.com/wlovet/p/17294046.html

相关文章

  • flask:蓝图(blueprint)、g对象、数据库连接池
    目录一、蓝图(blueprint)1、蓝图介绍2、蓝图的使用3、使用蓝图,划分小型项目目录4、使用蓝图,划分大型项目目录5、其他知识点二、g对象三、数据库连接池一、蓝图(blueprint)1、蓝图介绍在Flask中,使用蓝图Blueprint来分模块组织管理。蓝图实际可以理解为是一个存储一组视图方法的容器......
  • Laravel 任务调度(计划任务,定时任务)
    一步骤1.生成调用文件。2.定义调度3.启动调动器二 生成调用文件1执行以下命令phpartisanmake:command你的命名该命令会在 app/Console/Commands 目录下创建 你命名的文件  三  定义调度文件修改好以后我们需要在 App\Console\Kernel 类的 schedule 方......
  • js中通过数据库查询省,后自动带出市显示的问题
    //注册地址varprovince=SQL("selectprovincefromprojectwherecode='"+code+"'andisdelete=0orderbyindatelimit1");$("#field_2c923daf70a540290170aa8ad7a102ff").val(province);varcity=SQL("selectcityfrom......
  • 面试突击MySQL:高并发情况下,数据库该如何设计?
    转载:http://blog.itpub.net/70000181/viewspace-2776766/面试题剖析为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?)说白了,分库分表是两回事儿,大家可别搞混了,可能是光分库不分表,也可能是光分表不分库,都有可能。我先给大家抛出来一个场景:假如我们现在是一个小创业公......
  • SqlServer数据库表生成C# Model实体类SQL语句
    DECLARE@TableNamesysname='tb_Customer';DECLARE@ResultVARCHAR(MAX)='publicclass'+@TableName+'{';SELECT@Result=@Result+'///<summary>///'+CAST(t.SummaryASVARCHAR(MAX))+&#......
  • 数据库open遭遇ora-01555错误
    前几天我们的一位准客户的其中一套较为重要的数据库出现了故障。我们这里先姑且不去分析原因,来将数据库打开提供业务恢复再说。首先我们来看下一线工程师现场发回的报道:ORA-01555causedbySQLstatementbelow(SQLID:4krwuz0ctqxdt,SCN:0x0e0a.938dbd1d):selectctime,mti......
  • JS轮播图定时播放,鼠标经过轮播图时不停,鼠标离开轮播图时播放速度越来越快
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=d......
  • 活字格性能优化技巧(1)——如何利用数据库主键提升访问性能
    本文由葡萄城技术团队于博客园原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。大家都知道,活字格作为企业级低代码开发平台,拥有6大引擎,3大能力,能够高效落地企业级应用。在每年的应用大赛中也能看到很多格友利用活字格做了很多......
  • java项目 宿舍管理系统 (源码+数据库文件+1w字论文+ppt)
    java项目宿舍管理系统(源码+数据库文件+1w字论文+ppt)技术框架:java+springboot+vue+mysql后端框架:SpringBoot、SpringMVC、MyBatisPlus前端界面:vue、BootStrap、jQuery、ajxs系统共分为三种用户系统主要功能:系统设计三个角色,学生端,管理员端,系统管理员端楼宇管理:楼宇......
  • Mysql数据库基础(2)
    一、关系  将实体与实体的关系,反应到最终数据库表的设计上来:  将关系分成三种:一对一一对多(多对一)多对多  所有的关系都是指的表与表之间的关系。1、一对一  一对一:一张表的一条记录一定只能与另外一张表的一条记录进行对应;反之亦然。  学生表:姓名,性别,年龄,身......