kettle导出表结构 生成建表sql_kettle7.0数据库迁移(MySQL迁移到Postgresql,迁移过程中自动创建表结构)...

一、说明

最近做的系统中需要把各种数据库迁移到Postgresql数据库上,使用kettle来进行数据库迁移。

安装完kettle软件,需要将需要的数据库驱动放入在安装包的lib包下。

整套流程分为:2个job,4个trans。

二、所需软件

kettle7.0

JDK1.8

mysql-connector-java-5.1.43

三、具体实现

3.1 数据库迁移-主任务

3.2 获取变量-数据同步

3.3 获取全量表名

3.3.1 获取表名

3.3.2 字段选择

3.3.3 复制记录到结果

3.4 获取变量

3.4.1 从结果获取记录

3.4.2 设置变量

3.5 新建数据库表结构

3.5.1 获取表名

3.5.2 新建数据库表结构

根据不同的数据库设置建表语句

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException{

// First, get a row from the default input hop

Object[] r = getRow();

//本地连接

org.pentaho.di.core.database.DatabaseMeta dbmeta = getTransMeta().findDatabase("kettle_postgres");

if(dbmeta!=null)

{

org.pentaho.di.core.database.Database db=new org.pentaho.di.core.database.Database(dbmeta);

try

{

db.connect();

String tablename = getVariable("TABLENAME");

logBasic("开始创建表:" + tablename);

if(tablename!=null && tablename.trim().length()>0)

{

String sql = db.getDDLCreationTable(tablename, data.inputRowMeta);//${TABLENAME}

sql = sql.replace("TABLE", "TABLE public.");

db.execStatement(sql.replace(";", ""));

logBasic(sql);

}

}

catch(Exception e)

{

logError("创建表出现异常",e);

}finally{

db.disconnect();

}

}

return false;

}

3.6 数据抽取

3.6.1 新建数据库表结构

3.6.2 新建数据库表结构

四、迁移成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值