当前位置:网站首页>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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- 数据库系统原理与应用教程(066)—— MySQL 练习题:操作题 71-81(十):连接查询
- ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost3306' (10061)Solution
- Analysis and Simulation of Short Circuit Fault in Power System Based on MATLAB
- 数据库系统原理与应用教程(068)—— MySQL 练习题:操作题 90-94(十二):DML 语句练习
- (18)[系统调用]追踪系统调用(服务表)
- LayaBox---TypeScript---基础数据类型
- 高性能短链设计
- Moralis去中心化Web3应用开发教程
- un7.30:linux——如何在docker容器中安装MySQL?
- Promise entry to proficient (1.5w word detailed explanation)
猜你喜欢

Analysis and Simulation of Short Circuit Fault in Power System Based on MATLAB

weiit新零售小程序如何探索数字化门店的破局之路

17.机器学习系统的设计

论文阅读之《Color Constancy Using CNNs》

华为无线设备配置Mesh业务

躲避雪糕刺客?通过爬虫爬取雪糕价格

公司部门来了个00后测试卷王之王,老油条表示真干不过,已经...

Wincc报表教程(SQL数据库的建立,wincc在数据库中保存和查询数据,调用Excel模板把数据保存到指定的位置和打印功能)

Test the.net text to Speech module System. Researched

基于亚马逊云科技无服务器服务快速搭建电商平台——性能篇
随机推荐
un7.30:Linux——如何在docker容器中显示MySQL的中文字符?
mysql刷脏的几种场景以及相关参数
华为无线设备配置Mesh业务
Excel导入和导出
Shell implementation based on stm32
leetcode-1319:连通网络的操作次数
编曲软件FL Studio中文版安装教程及切换语言教程
知识蒸馏3:YOLOV5项目准备
基于模糊PID的液压舵机伺服系统
顺通海关查验预约综合管理系统
Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法
简易的命令行入门教程
中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
超声波探伤仪是做什么用的?
主流的深度学习推理架构有哪些呢?
大批程序员可能面临被劝退!
LayaBox---TypeScript---基础数据类型
Hangzhou electric school game 2 1001 2022 Static Query on Tree (Tree + hash table difference chain subdivision
JVM诊断命令jcmd介绍
图卷积神经网络的数学原理——谱图理论和傅里叶变换初探

