使用 Kettle(Pentaho Data Integration)连接 SQL Server

Kettle,现称为 Pentaho Data Integration (PDI),是一个开源的 ETL (抽取、转换、加载)工具,广泛用于数据集成、数据迁移和数据转换。在实际工作中,我们经常需要将数据从不同的数据库中提取到目标数据库中,这里我们以 Kettle 连接 SQL Server 为例来进行说明。

环境准备

在开始之前,您需要确保以下条件已满足:

  1. 安装 Kettle:下载并安装最新版本的 Pentaho Data Integration。
  2. SQL Server:确保 SQL Server 服务正在运行,并且您有连接该数据库所需的凭据。
  3. JDBC 驱动:下载 SQL Server 的 JDBC 驱动(如 sqljdbc4.jarmssql-jdbc.jar),并将其放置在 Kettle 的 lib 目录中。

创建连接

Kettle 提供了简便的用户接口来创建数据库连接。通过以下步骤连接到 SQL Server:

  1. 打开 Kettle 的 Spoon。

  2. 在主菜单中选择 Edit > Connections,打开连接管理界面。

  3. 点击 New 创建一个新的连接。

  4. 在弹出的窗口中,填写以下信息:

    • Name: 连接名称,例如 MySQLServerConnection
    • Type: 选择 Microsoft SQL Server 作为连接类型
    • Access: 选择 Native (JDBC) 选项
    • Host name: 输入 SQL Server 的主机名或 IP 地址
    • Database name: 输入要连接的数据库名
    • Port number: 默认 SQL Server 端口为 1433
    • Username: 输入用户名
    • Password: 输入密码
  5. 点击 Test 验证连接是否成功,若无问题则点击 OK 保存设置。

数据提取示例

在成功连接 SQL Server 后,我们可以通过 Kettle 提取数据并进行转换。以下是一个简单的数据提取示例,假设我们从 employees 表中提取数据并导出到 CSV 文件。

数据流步骤

  1. 添加一个 Table Input 步骤来从 SQL Server 查询数据。
  2. 添加一个 Text File Output 步骤来导出数据为 CSV 文件。
  3. 使用 Hop 将这两步连接起来。
SELECT * FROM employees;

Table Input 中,您可以将上述 SQL 查询填入 SQL Query 字段。

导出到 CSV

Text File Output 步骤中,设置输出文件路径和格式:

  • File name: output/employees.csv
  • Format: CSV
  • Separator: 使用分隔符,比如逗号 ,

运行转换

设置好数据流后,点击运行按钮以执行此转换。执行成功后,您将在指定的 output 目录下看到 employees.csv 文件,其中包含从 SQL Server 中提取的数据。

类图

以下是 Kettle 中有关 Table InputText File Output 步骤的类图:

classDiagram
    class DataTransformation {
        +execute()
    }
    class TableInput {
        +executeQuery()
    }
    class TextFileOutput {
        +writeFile()
    }
    DataTransformation --> TableInput
    DataTransformation --> TextFileOutput

关系图

示例中 employees 表与 CSV 文件的关系如下图所示:

erDiagram
    EMPLOYEES {
        INT id PK
        STRING name
        STRING position
        DECIMAL salary
    }
    CSV_OUTPUT {
        STRING filename
        STRING content
    }
    EMPLOYEES ||--o{ CSV_OUTPUT : exports

总结

通过本篇文章,我们介绍了如何使用 Kettle 连接 SQL Server,并通过简单的数据提取示例展示了如何将 SQL 数据导出为 CSV 文件。Kettle 的强大之处在于其图形化操作界面和丰富的步骤,允许用户轻松执行复杂的数据转换与集成任务。无论是经验丰富的开发者还是初学者,Kettle 都是一个值得尝试的工具。希望您在今后的数据处理工作中能充分利用它的强大功能!