使用Kettle批量同步数据库表

目的 (Kettle 版本5.2或以上 可由官网下载,免费开源)
从源库中同步若干张数据表至目标库或目标文件中
(鉴于Kettle工具对数据库连接的插件支持不是太好,最好是在源库与目标库类型相同的情况下使用,如:都是Oracle或都是Mysql等,当然不同的数据库也是可以的)

直接点:下载源代码  下载详细设计文档

数据同步方式 暂支持以下两种(即表2表 表2文件)可做配置
1)从源库表中同步数据至目标库表中 (目标表名可配置)
2)从源库表中同步数据至目标文件中 (目标文件名可配置)

数据源可配置 工具连接数据库统一使用JNDI的连接池来连接数据库;
JNDI统一配置在 data-integration/simple-jndi/jdbc.properties文件中,在向ETL执行源表: etl_kettle_tables 插入数据表信息的同时指定数据源;

执行结果校验
在工具同步数据结束后,会有数据校验步骤,校验的原则为,以下情况视为数据同步失败:
1)日志状态为 N-失败;
2)源库表中影响的行数与插入目标库表时影响的行数不同;
后续可添加其它校验规则;校验位置: tran4.2-check-failure 中

日志记录
工具在同步每张数据表时,都有对应的日志文件生成;

以下为详细配置步骤:

1、流程图

1.1 Kettle数据同步总流程

总流程图

1.2 Kettle数据同步详细流程

详细流程图

2、 数据模型设计

 

Kettle数据同步设计模型设计下载

简要说明:
ETL执行源表 etl_kettle_tables (Kettle从该表中动态加载需要执行的数据表信息)
ETL临时手动执行源表: etl_kettle_tables_error (手动处理时Kettle从该表中动态加载需要执行的数据表信息)
ETL日志表: etl_kettle_log (记录每次同步结果)
ETL同步结果表:etl_kettle_result (记录每次同步的成功与失败表数量)
具体详细表结构请下载模型设计查看

3、 同步工具配置详细步骤

3.1 启动Kettle工具

3.1.1 创建kettle文件资源库(若已有资源库可跳过)

1)在打开的如下图中点击【+】号按钮, 如下图

新建资源库

2)弹出如下窗口 选择文件资源库类型 Kettle file repository

选择文件资源库

3)在弹出的如下窗口中选择文件资源库的目录位置并设置资源库名称(注:最好起有意义的英文名称,下面的描述Description最好也是使用英文,中文可能会有乱码)

创建文件资源库

4)在上图中点击确定即可完成文件资源库创建

3.1.2 打开文件资源库

1)启动Kettle工具 弹出如下窗口 选择已经创建好的资源库名称,输入登录用户名及密码并点击确认按钮

连接资源库

即可成功登录资源库,弹出如下欢迎界面窗口

3.2 Kettle工具配置

3.2.1 主作业入口 Job-Tools-Main

主作业内容如下图

主作业

现详细说下主作业的各项内容

A)变量配置  tran1.1-set-commen-variables

a) 主要用来设置一些变量供后面使用 内容如下图

变量定义

b) 生成随机数 里面配置为空(也可以不用使用这个插件直接删除掉)

c) 公共变量定义 此处主要来设置变量,是A)步骤的核心设置 如下图

变量设计

需要注意的是 下半部分的字段位置 需要选择出已做好的变量 (其中“改名为”字段 可默认也可以修改,一般在定义的名称前面添加 v_ 用以标识变量)

 现粘贴出里面的代码供查看


Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值