有没有支持sqlserver的kettle web版本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有支持sqlserver的kettle web版本相关的知识,希望对你有一定的参考价值。

1:在创建资源库的时候会报数据类型错误,创建信息会有一些看上去是失败的。But 这个时候不用担心
是以为创建资源库的脚本有一些问题

CREATE TABLE R_VERSION
(
ID_VERSION BIGINT PRIMARY KEY
, MAJOR_VERSION INT
, MINOR_VERSION INT
, UPGRADE_DATE DATETIME
, IS_UPGRADE BIT
)
;

INSERT INTO R_VERSION(ID_VERSION, MAJOR_VERSION, MINOR_VERSION, UPGRADE_DATE, IS_UPGRADE) VALUES (1,5,0,'2016/06/20 21:03:16.689','N');

CREATE TABLE R_USER
(
ID_USER BIGINT PRIMARY KEY
, LOGIN VARCHAR(255)
, PASSWORD VARCHAR(255)
, NAME VARCHAR(255)
, DESCRIPTION VARCHAR(255)
, ENABLED BIT
)
;

INSERT INTO R_USER(ID_USER, LOGIN, PASSWORD, NAME, DESCRIPTION, ENABLED) VALUES (1,'admin','2be98afc86aa7f2e4cb79ce71da9fa6d4','Administrator','User manager','Y');

INSERT INTO R_USER(ID_USER, LOGIN, PASSWORD, NAME, DESCRIPTION, ENABLED) VALUES (2,'guest','2be98afc86aa7f2e4cb79ce77cb97bcce','Guest account','Read-only guest account','Y');

解决问题的办法:
1:删除原来的DB
2:在数据库新建DB
3:修改上面SQL脚本BIT类型为Char(2),然后在创建窗口执行或者复制SQL手工执行创建资源库脚本即可,推荐第一种,直接在SQL窗口中修改
PS:Kettle连接Oracle的话数据库名称是 SID的名称哦 不是TNS中的名字或者servername的名称
参考技术A TEXT转成CLOB试试

Kettle批量同步多张表数据

背景

公司想要将业务系统使用的数据库由 SQL SERVER 切换到 ORACLE,因此需要将原 SQL SERVER 库的数据同步到 ORACLE 库中。

因为涉及的数据表有几百张,数据约百G的级别,一张表开发一个Kettle 太过于繁琐了,因此考虑通过配置完成数据同步。

方案:

       SQLSERVER 库切换至ORACLE库,由于 Oracle库的关键字与SQLSERVER不同,  两库的表名和字段名略有不同,但可以建立一一对应的映射关系。将映射关系数据维护进数据库的表中。通过SQL语句生成查询语句,将查询语句以及数据同步的源表、目标表维护进另一张配置表中,Kettle读取配置后,遍历配置信息,使用配置信息替换同步转换内的参数, 完成数据同步。

整体方案实现图:

技术图片

数据同步配置表构成如下:

 技术图片

注意 FLAG 字段是用来标识是否执行成功,取值根据需要配置即可。

 

以上是关于有没有支持sqlserver的kettle web版本的主要内容,如果未能解决你的问题,请参考以下文章

kettle实现单表增量抽取

利用Kettle进行SQLServer与Oracle之间的数据迁移实践

kettle 怎么将mysql中数据导入sqlserver

Kettle批量同步多张表数据

Kettle资源库采用SQLserver数据库需要注意的点

kettle 如何解析webservice