前言

上一篇文章讲到Kettle的安装部署,假设JDK已装好,Kettle的spoon可以正常打开。本文我们选取SQL Server作为数据源,来探讨怎样使用Kettle。

Kettle主要包含两大部分,下面用案例来讲怎样创建转换transform和作业job。

1.转换transform:完全针对数据的基础进行转换
2.作业job:整个工作流的控制

数据准备:

--建数据库CXJ_kettle
drop database CXJ_kettle if exist;
create database CXJ_kettle if not exist;use CXJ_kettle--建表stu1
drop table stu1;
create table stu1(
id int ,
name varchar(20),
age int
);--建表stu2
drop table stu2;
create table stu2(
id int,
name varchar(20)
);--插入数据
insert into stu1 values(1001,'Ding',20),(1002,'Bella',21),(1003,'Icey',22);
insert into stu2 values(1001,'Icey');--查询表数据
select * from stu1;
select * from stu2;

SSMS查询结果:
stu1:

stu2:

案例

需求背景:把表stu1的数据按照id同步到stu2,stu2有相同的id则更新数据。

1.1 连接数据源

准备数据库驱动包

由于 kettle 需要连接数据库,因此需要下载对应的数据库驱动包。本文章连接的数据源是SQL Server,去网址jTDS - SQL Server and Sybase JDBC driver下载 jtds包,解压后,将文件夹下的 jar 文件“jtds-1.3.1”复制到kettle 解压后路径的 Kettle/data-integration/lib 文件夹中,重新启动kettle。

若Kettle连接MySQL 数据源,则需要下载 mysql-connector-java.jar,下载网址为:Download MySQL Installer。

若Kettle连接Oracle数据源,则需要下载ojdbc.jar,可参考:kettle连接Oracle数据库教程。
下载完成后,将 jar包放入 kettle 解压后路径Kettle/data-integration/lib文件夹中,重新启动kettle即可。

1) 新建转换:选择“转换”—>单击鼠标右键—>新建

2) 新建数据库连接

3) 数据库连接设置

主机名称:IP地址或localhost
端口号: 默认显示
用户名和密码:SQL Server数据库登录账号密码


测试连接成功页面如下:

数据库连接成功后,选中该连接,右键“共享”此连接。

Issue: 测试SQL Server连接出现以下报错怎么办?

报错1:

Driver class 'net.sourceforge.jtds.jdbc.Driver’could not be found,make sure the 'MS SQL Server’driver (jar file)is installed .net.sourceforge.jtds.jdbc.Driver

解决:
这是提醒你未将SQL Server对应的数据库驱动包放在Kettle的lib文件夹下,详细可参考上文“准备数据库驱动包”环节。

报错2:

Connection failed. Verify all connection parameters and confirm that the appropriate driver is installed.
Network error IOException: Connection timed out: connect

解决:

我在创建数据库连接时这里的主机名称填的不是localhost,而是主机IP,一开始运行转换没有报错,但一周后再次运行就报错如下,cmd检查自己的主机IP地址,发现IP已发生改变,用新IP重新测试,发现能够连接成功。
如果数据库安装在本地,建议此处主机名称填" localhost "。

1.2 创建转换transform

流程:

1)假设已创建好转换,并且数据库连接成功。

2)画转换流程图:在“输入”选项下找到“表输入”拖到右边画布区;在“输出”选项下找到“插入/更新”拖到右边画布区;按住shift键,长按鼠标左键移动鼠标,可以连接两个控件,得到流程图如下。

3)设置控件:
双击“表输入”,设置如下

双击“插入/更新”,设置如下。(下图选项若勾上,则出现相同数据不执行任何操作,否则出现相同数据就更新)

4)点击启动,提示保存,保存为转换“CXJ_kettle_transform”,绿色对勾表示成功。

SSMS刷新数据库,查询结果如下:

1.3 创建作业job

需求背景:创建作业执行上述转换“CXJ_kettle_transform”,并且额外在表Stu2中添加一条数据(1004,‘Amy’)

流程:

1)新建作业 :**选择“作业”—>单击鼠标右键—>新建

2)画作业流程图 :在“通用”选项下找到“Start”、“转换”、“Dummy”拖到右边画布区;在“脚本”选项下找到“SQL”拖到右边画布区;
按住shift键,长按鼠标左键移动鼠标,可以连接这些控件,得到流程图如下。

3)设置控件
双击“转换”,浏览填入上文保存的转换。

双击“SQL”,设置如下,插入SQL脚本“insert into stu2 values (1004,‘Amy’)”。

4)点击启动


作业执行成功:

SSMS刷新数据库,查询结果如下:

总结:

作业job是对整个工作流的控制,可以定时,一个作业可以包含多个作业项,转换transform只是其中一个作业项。

Kettle(二):连接SQL Server数据库相关推荐

  1. asp教程连接sql server数据库教程二种方法

    asp教程连接sql server数据库教程二种方法  ,sql server ole db连接方法:,本人链接sql2012已经成功,想可以帮助大家 本教程主要是讲了asp与mssql server ...

  2. ADO.NET连接SQL Server数据库

    在.NET应用程序中,创建数据连接分为三步: 一.定义连接字符串 不同的数据库连接字符串的格式不同,一般都包括要连接的数据库提供都名称.登陆信息以及要使用的数据库名称. 注意:在定义连接字符串之前,一 ...

  3. Java案例:连接SQL Server数据库,显示学生表记录

    Java案例:连接SQL Server数据库,显示学生表记录 演示利用JDBC连接SQL Server数据库,在Java GUI窗口里显示表记录. 一.运行效果 二.实现步骤 1.项目结构图

  4. Visual Studio2022连接SQL Server数据库

    Visual Studio2022连接SQL Server数据库 一.软件准备 1. 安装Visual Studio2022 二.环境配置 1. 创建数据库 2. 利用ODBC建立连接 三.连接数据库 ...

  5. python数据库编程:Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载 ...

  6. VB.NET连接SQL server数据库解决方案(转载+亲自实践)

    原文来自:http://hi.baidu.com/mwd_3330410/blog/item/ba0ccd240a0902184c088d83.html Microsoft Visual Basic. ...

  7. java连接sql server数据库的代码如何改成连接mysql_连接sqlserver数据库代码

    Sql Server的JDBC测试程序与远程连接 参考文献: 1.MySql与oracle的JDBC测试程序 2.查看sqlserver的端口号 代码示例 在我的机器上安装了多个版本的sqlserve ...

  8. JDBC连接SQL Server数据库[windows验证模式连接+SQL server验证]

    JDBC连接SQL Server数据库[windows验证模式连接+SQL server验证] 都说用JDBC连接数据库会出现很多问题,现总结.汇总一下. 前提是已经正确安装了SQL Server系列 ...

  9. python 使用pymssql连接sql server数据库

    Python连接SQL Server数据库 - pymssql使用基础 ----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html ...

  10. powershell连接数据库_PowerShell 连接SQL Server 数据库

    PowerShell 通过ADO.NET连接SQL Server数据库,并执行SQL脚本.工作中整理的一小段脚本,后来没有用上,先记录在这里: 建立数据库连接 查询返回一个DataTatble对象 执 ...

最新文章

  1. 每日一皮:2020年度最佳微小说...
  2. flutter制作具有自定义导航栏的渐进式 Web 应用程序
  3. Struts2与Struts1的对比
  4. GoogleClosureLibrary 中的Component 模型纪要
  5. MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析...
  6. PAT-Mars number
  7. 【转】自学成才秘籍!机器学习深度学习经典资料汇总
  8. 产生滚动条时JPanel的大小发生变化
  9. linux 提取重复数据处理,Linux提取命令cut
  10. netlink 0010 -- Generic Netlink 实现通信
  11. html sql连接mysql数据库_HTML连接sql数据库
  12. C语言关键字浅析-int
  13. Javascript——读取json文件方法总结
  14. 计算机网络---网络编程套接字(一)
  15. 【Elasticsearch教程20】Pinyin拼音分词器 以及多音字修改
  16. 极度干货——GitHub受欢迎的Android UI Library整理
  17. python教程cos_Python爬虫入门教程 12-100 半次元COS图爬取
  18. 京东云李道兵:对象存储的新挑战
  19. QGIS开发(一)——环境配置
  20. 深度测试oppo软件,OPPO手机推深度测试:可解锁Bootloader,已支持Find X正式版

热门文章

  1. Dropbox怎么安全地存储用户密码?
  2. 网页方式打印 EMS 等快递单的经验和教训
  3. 为什么程序员熬夜加班,项目还是会延期?
  4. 淘客基地淘客公众号系统更新1.2.2
  5. vulntarget-f
  6. Docker 操作记录
  7. python中的模块_Python中的模块 | 萧小寒
  8. clickhouse数据目录路径问题
  9. OpenAL播放音频
  10. 程序员使用什么背景颜色比较不伤眼