Kettle如何连接SQL Server和问题处理

简介

Kettle(也称为 Pentaho Data Integration)是一款开源的 ETL(Extract, Transform, Load)工具,由 Pentaho 开发。ETL 是指从一个数据源(通常是数据库)中提取数据,进行转换,然后加载到目标系统中。Kettle 为数据集成和数据仓库开发提供了强大的工具和功能。

环境

kettle 版本: 7.1

数据库: sql sever 2022

系统环境: windows

kettle 连接 sql sever

  1. 打开 Spoon(Kettle 的图形化界面工具): 启动 Kettle 中的 Spoon 工具。

  2. 创建数据库连接: 在 Spoon 中,选择“View” > “Database Connections”以打开数据库连接视图。右键单击空白区域,选择“Create Connection”。

  3. 选择数据库类型: 在弹出的对话框中,选择数据库类型为“Microsoft SQL Server”。

  4. 填写连接信息: 输入以下连接信息:

  • Connection Name: 连接的名称,可以随意取。
  • Database Hostname: SQL Server 数据库的主机名或 IP 地址。
  • Database Port: SQL Server 数据库的端口,默认为 1433。
  • Database Name: 要连接的数据库名称。
  • Username: 数据库的用户名。
  • Password: 数据库用户的密码。

    1. 测试连接: 点击“Test”按钮,确保连接测试成功。
    2. 保存连接: 如果测试成功,点击“OK”按钮保存你的数据库连接。

    遇到的问题

    1. 驱动问题
    错误连接数据库 [xxx] : org.pentaho.di.core.exception.KettleDatabaseException:
    Error occurred while trying to connect to the database
    Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.
    org.gjt.mm.mysql.Driver
    org.pentaho.di.core.exception.KettleDatabaseException:
    Error occurred while trying to connect to the database
        ...
    

    下载连接 : JDBC Driver for SQL Server https://learn.microsoft.com/zh-cn/sql/connect/jdbc/release-notes-for-the-jdbc-driver?view=sql-server-ver16

    解决办法: 根据 jdk 版本进行选择。将下载的驱动文件拷贝到 kettle 安装目录的 data-integration/lib 下,重启进行测试

    1. SQL Server 提示不能通过 1433 端口登录

    解决办法:

    • 打开 cmd 用 telnet localhost 1433 进行测试,如果无法连接表示 1433 端口还未打开
    • 开始菜单找到,点击运行
    • 对 MSSQLSERVER 的协议(本机数据库的实例名)、客户端协议启用 TCP/IP,再右键到 TCP/IP 协议,将 IP 和端口进行设置并且启用

    • 设置完成后,将 sql sever 服务进行重启