首页 > 其他分享 >使用kettle同步数据

使用kettle同步数据

时间:2024-05-16 18:10:06浏览次数:17  
标签:同步 -- kettle 字段 执行 数据 双击

如果这篇文章能给你带来帮助,不胜荣幸,如果有错误也请批评指正。共同学习一块进步。

  题外话:进入了2024.我决定做什么事都要持之以恒,首先是按时学习,按时记笔记,按时复习巩固。刚才看了一下,上年就想写出来,结果没有实现的。今年要好好处理一下这个事!

 太多了。好多东西觉得是个知识点。都想着写出来,到最后又都放弃了。

  好了言归正传。今天主要写kettle同步数据。我只做一个小的简单的例子。其他的功能大家可以自己摸索

  例如:我要将A表的数据同步到B表当中,同步过了的数据编辑字段sync的值为1.未同步到B库B表当中的数据sync字段用5来表示。同步过去之后再进行修改。

  首先,下载kettle数据同步图形化界面工具spoon,我下载的版本为:7.1。具体下载地址为:很抱歉,忘了!以后再说吧。

  这里有几个坑:一个是kettle没有mysql的驱动,你需要自己去下载对应的版本驱动。  https://blog.csdn.net/qq_36813879/article/details/113990570

  另外一个是防火墙规则设置,不一定大家能遇见。尽可能的给大家写一下解决方法。  https://blog.csdn.net/xiongben0102/article/details/120331961

  上面两个链接,是我去网上搜的,至于管用与否,我不知道,因为我的防火墙已经关了,mysql的驱动,我电脑上之前有。放到位置上就可以了。

  下载之后找到data-integration文件夹下面的Spoon.bat按钮,双击两次打开

  图形化界面打开之后。如果要进行数据的抽取,转化和加载这三个简称(Extract-Transform-Load【ETL】)。你需要先创建一个转换,这个转换可以进行数据的抽取,转换,和加载等操作(下面将其命名为三步走)。你可以理解为:对数据的操作的流程。你需要建立一个流程。

  具体步骤为:左上角,文件-->新建-->转化

  例如我建立的: 

   你可以对他进行重命名之类的任何操作,非功能性操作,这里不做过多讲解;

  

  继续测试从A表同步到B表,再修改A表的同步标识,那么首先第一步就是链接数据库;点击左上角主对象树,点击DB连接,选择一般就可以了,输入你的连接名,数据库信息等参数,点击测试,如果成功会提示连接成功。

       

  继续往下,既然是A表不断同步数据到B表,那么要先把A表当中的数据查出来,这是我在数据库创建的A表,B表和A表一样,只是少了sync【5:未同步;1:已同步】同步标识这一列。

  

   

   再创建的转化中,从数据库表当中取数据的方法也有很多,具体可以参考左上交的核心对象,里面有很多小的功能。做测试我选择使用  核心对象-->输入-->表输入

  双击表输入就会显示在右边整个转换的工作区域了。。双击表输入,可以对表输入这个步骤进行编辑,包括改名字,编辑数据库,编写sql语句,查看sql结果预览等等。例如这是我的编辑界面【图1】            和                                 预览界面【图2】

  【图1】              【图2】

     到现在已经从A表里面拿出来数据了,那么怎么把他存到B表当中呢,需要另外一个功能模块。那就是表输入  步骤:核心对象-->输出-->插入/更新   在这里我选择的是插入/更新。可以使用其他功能模块来展示,能实现效果即可。双击插入/更新,添加到转换区域。默认会有指向箭头。如图

     

  同理:双击插入更新可以进入插入更新步骤的编辑界面,默认是你配置的数据库。你可以选择其他库。选择插入的目标表的表名,点击获取字段,自动回显查询的关键字。主要是下面更新字段区域。表字段指的是,要插入的B表中的字段,流字段,是从A表中查出来通过流插入到B表中的字段。

       更新是Y(yes),不更新可以选择N(no).要根据实际情况对应,例如我是两张表结构都一样,我就一一对应,例如你想把A表的ID字段存到你B表的name字段当中,你就表字段name,流字段选择ID。【以上均是个人理解,有不同的意见可以留言,我看见了将予以改正】

  

    点击确认,到目前位置已经完成了取数据和插入更新数据。为了了解清楚这次都执行一遍,我每次执行执行两条,先对5条数据进行操作。第一次,先对字段进行操作,例如将A表里面的ID存入B表的name字段。可以测试一下,点击执行按钮【图3】,会选择让你保存,选择合适位置进行保存。然后继续运行。运行效果如下【图4】【图5】

   【图3】                                           【图4】   【图5】

  可以看见那个步骤执行的  读写  输入  输出数量。再去数据库进行,下面是AB两个表结果。 可以发现确实是A表的ID字段数据同步到了B表的name字段上。表字段和流字段验证完成之后,把插入/更新步骤里面的字段改成对应的就好了

 

 

  A表 :                         B表:

       

  继续,现在只是完成了同步了,现在开始让同步了的A表的数据,把sync字段的值由5改成1.下次我再查数据的时候我就查询未同步的数据进行同步。那么再继续加一个修改字段标识的步骤。这次我加的是  执行sql脚本  这个步骤。(步骤-->脚本-->执行sql脚本)

  双击添加到转化界面。再次在转化区双击执行sql脚本步骤,对步骤进行编辑。 再sql区域,我编写了 update  a  set sync = 1 where id = '?' 这个。其中变量用   ‘?’来表示,对应下面的参数 ID.我这个A表是根据ID当主键的,其他的按需匹配。选择地下的执行每一行。只要是涉及到的,都会执行。

  

  现在是这样的:回发现在插入/更新 到  执行sql脚本中间有一个复制的  图标 ,悬浮显示:黄色的文字。他的意思是  执行sql脚本的步骤,所需要的参数或者数据流是从哪里来的呢?是从原始数据来的,原始数据是什么呢?在我们这里值得就是  表输入当中的查询出来的数据。

  他这么说的主要作用是说,假如我再插入/更新模块进行了更新或者其他操作,没事,因为这里是按照原始数据表输入的数据来执行的。

  

  去数据库把B表清空,重新执行操作,结果如下。  可见A表当中的数据已经被同步到B表当中了,同步的标识字段sync 也已经被改了。那么到现在为止。已经完成了转化这个功能,也就是说把A表的数据同步到B表并修改A表同步标识的字段。

  A表:                                                                                   B表:

 

       那么我要是有二十万条呢?或者我A表的数据是其他地方推送(通过)过来的呢?这就需要  ‘作业’ 了。 点击左上角文件-->新建-->作业

  则会新建一个作业,这个作业的作用就是用来操作刚才新建的转化的。

  在作业窗口选择左上角通用-->START  双击START.会在作业窗口显示出来。双击START,进入编辑界面,在这里你可以选择什么时候执行,是否重复执行,什么条件重复执行等等,例如我选择了每10分钟重复执行【图6】 。具体条件看个人需求

    

                【图6】                           【图6】【图7】

 

 

   再然后点击通用-->转换,双击转换,将转换步骤添加到作业窗口,再次双击打开转换的编辑界面【图7】,选择刚才写好的转换。点击确认。再选择通用-->成功 ,双击成功,添加到作业界面。  如图【图6】。选中START 摁住 shift  键从START向转化界面扯出流程线。这样整个就完成了【图7】。启动START 就可以按照设定的时间,不断的进行转化了。

  当然你也可以通过bat  来执行。看个人喜好。因为我也是自学的,如果有错误请批评指正,如果觉得有用请分享给更多人。希望大家共同学习,一起进步!!!

 

 

  

   

 

 

 

 

  

 

 

 

 

 

 

 

  

标签:同步,--,kettle,字段,执行,数据,双击
From: https://www.cnblogs.com/sunrising/p/18124780

相关文章

  • 老板看过来:防火墙不是万能的,数据安全你得这么管
    在信息技术不断进步的今天,企业的数据安全管理愈加重要。很多企业的老板可能会认为,只要有了防火墙,公司的数据就能安全无忧。然而,防火墙虽然是重要的第一道防线,但它并不是万能的。数据安全管理是一个全面的系统工程,需要从多个角度出发,才能真正保护企业的数据资产。以下是一些关键的......
  • Flink同步kafka到iceberg(cos存储)
    一、flink到logger1、sourcecreatetablesource_table(idbigintcomment'唯一编号',order_numberbigintcomment'订单编号',update_timestamptimestamp_ltzmetadatafr......
  • C# GridView根据列名获取某行某列的数据
    前台代码前台代码<cimesui:cimesgridviewid="gvReIQC"runat="server"enablemodelvalidation="True"allowpaging="True"autogeneratecolumns="False"Style="background-col......
  • POI 重叠、并列柱状图(条形图),显示数据,自定义颜色
    1、pom.xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifac......
  • DataX将MySql数据库数据同步到Oracle数据库
    1.下载DataX并解压(本地环境安装有python)DataX/userGuid.mdatmaster·alibaba/DataX(github.com) job文件夹下存放数据同步的json脚本{"job":{"setting":{"speed":{"channel":1}......
  • 国产数据库obase
    ##sample1文章1  OceanBase慢查询排查思路  https://open.oceanbase.com/blog/4030499840?_gl=1*1muepo8*_ga*MTg4MDgzMzI3Mi4xNzE1NDE3MjEw*_ga_T35KTM57DZ*MTcxNTg0MDQ3OS4xMi4xLjE3MTU4NDU2NTkuNjAuMC4w  本文汇总了项目实践中前辈的经验和笔者的理解,旨在帮助初......
  • 一不小心数据就飞了?企业安全防护小贴士大盘点
    企业在保护数据安全方面面临许多挑战。为了防止数据泄露和确保信息安全,可以采取以下一些关键措施:1.制定和实施安全策略数据分类与管理:明确数据的重要性,分类存储和管理不同级别的数据。访问控制:采用最小权限原则(LeastPrivilege),确保员工仅能访问与其工作相关的数据。安全......
  • GPS北斗授时同步服务器(NTP网络时钟系统)技术应用方案
    GPS北斗授时同步服务器(NTP网络时钟系统)技术应用方案GPS北斗授时同步服务器(NTP网络时钟系统)技术应用方案京准电子科技官微——ahjzsz大数据时代,信息化建设已成为医院建设的发展大趋势,时间同步系统是医院做好信息化的基础工作,医院内拥有众多的计算机服务器、网络设备、存储设备等......
  • lightdb数据库超时相关控制参数
    在业务开发中,通常因为代码不规范、中间件缺陷、DBA误提交批量SQL等原因,会导致服务端连接一直存在、但是实际上并未在执行的情况,从而导致数据库连接泄露。为了防止这种异常情况积压,lightdb中包含了多个参数用于控制超时相关的行为:lock_timeout:控制多久拿不到锁就自动超时并回......
  • 整合druid数据源
    Druid是阿里巴巴开源的一个数据源,主要用于java数据库连接池,相比spring推荐的DBCP和hibernate推荐的C3P0、Proxool数据库连接池,Druid在市场上占有绝对的优势,Druid数据源由于有强大的监控特性、可拓展性等特点。使用导入依赖<dependency> <groupId>com.alibaba</groupId>......