当前位置:网站首页>Kettle(二):连接SQL Server数据库
Kettle(二):连接SQL Server数据库
2022-07-30 17:40:00 【m0_67400972】
前言
上一篇文章讲到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只是其中一个作业项。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- UE5第一人称射击游戏蓝图教程
- mysql刷脏的几种场景以及相关参数
- 数据库系统原理与应用教程(066)—— MySQL 练习题:操作题 71-81(十):连接查询
- matlab simulink锂离子电池智能充电策略研究
- PLSQL Developer安装和配置
- C陷阱与缺陷 第7章 可移植性缺陷 7.2 标识符名称的限制
- Basic knowledge points in js - BOM
- LayaBox---TypeScript---泛型
- JMeter Notes 4 | JMeter Interface Introduction
- JMeter Notes 3 | JMeter Installation and Environment Instructions
猜你喜欢

Servo System of Hydraulic Steering Gear Based on Fuzzy PID
![(18)[系统调用]追踪系统调用(服务表)](/img/05/2529e49932f7bdc9d30f7d267a1d29.png)
(18)[系统调用]追踪系统调用(服务表)

952. 按公因数计算最大组件大小 : 枚举质因数 + 并查集运用题

FastJson反序列化漏洞(复现)

js中的基础知识点 —— BOM

Prometheus 基本概念

WeChat applet picker scroll selector use detailed explanation

论文阅读之《DeepIlluminance: Contextual IlluminanceEstimation via Deep Neural Networks》

游戏化产品搭建思路的拆解与探究

华为无线设备配置Mesh业务
随机推荐
Google earth engine如何实现我们时间列表的排列和选取
分账系统二清解决方案如何助力电商平台合规经营?
C# 连接SQL Sever 数据库与数据查询实例 数据仓库
un7.30:linux——如何在docker容器中安装MySQL?
【解决】关于 Unity Hub 获取许可证失败 或 无响应导致无法开发的问题
中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
C陷阱与缺陷 第7章 可移植性缺陷 7.5 移位运算符
【Cloud Store Announcement】Notice of Help Center Update on July 30
高性能短链设计
[HarekazeCTF2019] Avatar Uploader 1
C陷阱与缺陷 第7章 可移植性缺陷 7.4 字符是有符号数还是无符号数
宽带射频放大器OA4SMM4(1)
LayaBox---TypeScript---变量声明
Informatics Olympiad All-in-One 1966: [14NOIP Popularization Group] Scale Simplification | Luogu P2118 [NOIP2014 Popularization Group] Scale Simplification
LayaBox---TypeScript---类
多年以后「PageHelper」又深深的给我上了一课
windwons 下GPU环境和pytorch安装
如何让 JOIN 跑得更快?
shell快速移植
莫队--优雅的暴力

