2018-12-18 17:42:47 n466053295 阅读数 62
  • kettle精讲

    kettle精讲,本节课程主要包括kettle基础的表输入、增量更新、同步更新、定时任务,学完可以基本满足企业的日常开发需要

    1506 人正在学习 去看看 陈健

主要目的,利用kettle 实现线上数据,和备份数据的同步,加qq群交流934375780,验证请发“kettle学习”。

这个是两个表数据同步总图。

 

把两张表的数据抽取出来,对比

然后插入旧的数据库。

重点有两个:

1,取两张表的数据,一定要排序,不然可能报错。

2,数据同步,高级选项里,要把对应的diff值设置正确

2019-05-12 09:52:11 BushQiang 阅读数 1885
  • kettle精讲

    kettle精讲,本节课程主要包括kettle基础的表输入、增量更新、同步更新、定时任务,学完可以基本满足企业的日常开发需要

    1506 人正在学习 去看看 陈健

http client

在这里插入图片描述
填写地址
在这里插入图片描述
http client
在这里插入图片描述
获取到的json数据
在这里插入图片描述
json input解析json数据
在这里插入图片描述
可以用字段选择来获取自己想要的数据,然后存入表中
在这里插入图片描述

使用定时任务来运行工程

kettle有自带的定时任务,但是需要一直开启kettle对系统的性能造成影响,建议不要使用这个功能
在这里插入图片描述
可以使用windows自带的定义任务来完成,首先写一个bat脚本

d:
cd D:\software\kettle7.1\data-integration
Kitchen /file=D:/Repository/KettleRep/web/http.kjb >D:/kettle.log

在这里插入图片描述
然后使用系统自带的定时任务来执行
在这里插入图片描述
有一个地方需要注意下,要勾选一个不管用户是否登陆都可以执行。

REST Client

在这里插入图片描述
填写参数
在这里插入图片描述
rest client
在这里插入图片描述
json数据
在这里插入图片描述
获取自己想要的数据
在这里插入图片描述
在这里插入图片描述
时间戳增量同步
https://blog.csdn.net/dora_310/article/details/80511793

2016-04-01 13:34:01 drbing 阅读数 5755
  • kettle精讲

    kettle精讲,本节课程主要包括kettle基础的表输入、增量更新、同步更新、定时任务,学完可以基本满足企业的日常开发需要

    1506 人正在学习 去看看 陈健
导出的csv文件获取字段时,若是string类型,那么字段长度要么清空,要么点下面的获取最小宽度,否则若是采用原默认宽度会报错
2019-11-11 09:47:37 shuaishuai1234 阅读数 487
  • kettle精讲

    kettle精讲,本节课程主要包括kettle基础的表输入、增量更新、同步更新、定时任务,学完可以基本满足企业的日常开发需要

    1506 人正在学习 去看看 陈健

需求是这样的:
从A数据库取数据到B数据库,A库中表只包含有效数据,因此同步到B库中也只能包含有效数据,其他的数据要么更新,要么删除,或者新增。

总体解决方案:
在这里插入图片描述
因为脚本是第三方执行的,我们没有权限执行脚本,同样也没有第三方也就是上面说的A库的权限,因此我们一开始一直纠结怎么取数据,把解决问题的点一直关注B库,后来才反应过来,既然是第三方执行脚本,他们有A库权限,那么执行脚本应该把A库算在可执行解决问题的范围内,不应该只是将其作为一个简单的表输入使用。

具体解决方案:

  • 首先将库A、B的表作为表输入
  • 然后“字段选择”是选择输出的字段(不输出不写),并且可以重新命名(这个功能很好,可以将不同表数据命名统一),进行排序
  • 然后合并记录(合并记录之前必须排序,合并记录其实就是根据主键判断两表对应数据是否一致,合并记录后会形成标志位,用于判断数据是更新、删除还是新增,不变)
  • 然后根据标志位使用switch/case对数据进行状态判断
  • 根据标志位状态进行删除、插入更新。

表输入:
在这里插入图片描述
字段选择:
选择需要输出的字段,并且可以重新命名字段
在这里插入图片描述
排序记录:
输入需要排序的字段,一般和主键保持一致
在这里插入图片描述
合并记录:
用于比较A库和B库对应表的数据,根据主键(关键字段)确立数据匹配规则,并标记数据状态(标志字段:flagfield
数据状态:

  1. “identical” – 旧数据和新数据一样

  2. “changed” – 数据发生了变化;

  3. “new” – 新数据中有而旧数据中没有的记录

  4. “deleted” –旧数据中有而新数据中没有的记录
    在这里插入图片描述
    判断数据状态:
    根据数据最终标记状态(flagfield),选择输出的目标步骤
    在这里插入图片描述
    删除:
    根据主键(关键字)删除对应标志位数据
    在这里插入图片描述
    插入、更新:
    根据主键(关键字段),进行插入更新数据
    在这里插入图片描述

2019-03-30 17:17:00 weixin_42354570 阅读数 427
  • kettle精讲

    kettle精讲,本节课程主要包括kettle基础的表输入、增量更新、同步更新、定时任务,学完可以基本满足企业的日常开发需要

    1506 人正在学习 去看看 陈健

先来介绍下什么是kettle:
      Kettle 是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计
用来帮助你实现你的ETTL 需要:抽取、转换、装入和加载数据;翻译成中文名称应该叫水
壶,名字的起源正如该项目的主程序员MATT 在一个论坛里说的哪样:希望把各种数据放到
一个壶里然后以一种指定的格式流出。
Spoon 是一个图形用户界面,它允许你运行转换或者任务,其中转换是用Pan 工具来运
行,任务是用Kitchen 来运行。Pan 是一个数据转换引擎,它可以执行很多功能,例如:从
不同的数据源读取、操作和写入数据。Kitchen 是一个可以运行利用XML 或数据资源库描述
的任务。通常任务是在规定的时间间隔内用批处理的模式自动运行。

1.kettle安装 

  安装必须安装Java jdk环境,官网可以下载最新版本的spoon 工具(http://kettle.pentaho.org/)

2.运行spoon

    不同平台运行不同的脚本

     Spoon.bat: windows平台运行

     Spoon.sh:在Linux、Apple OSX、Solaris 平台

一切准备就绪,开始正式操作了:

      先打开安装好的Spoon工具,进入首页,新建一个转换,双击DB连接,这里我选择的是sqlserver数据库(记得将sqlserver的驱动jar包放到pdi安装目录里的lib 目录下,不然连接不上数据库),主机名称:数据库地址 。如图所示:

连接成功后,点击核心对象,点击输入 -找到表输入,将表输入拖到转换界面,点击输出-找到表输出,将表输出拖到转换界面,

点击表输入,长按shift,建立连接。如图所示:

双击表输入,点击获取sql查询语句,查到源数据表,选择,确认,如图:

双击表输出,新建,创建一个新的连接,点击浏览,找到需要导入数据的表。点击确认,如图:

勾选指定数据库字段,点击输入数据字段映射,将需要同步的列Add,然后确认,如图:

最后点击左上角的启动,如果页面如图所示,就成功同步了:

 

 

没有更多推荐了,返回首页