使用 Kettle(Pentaho Data Integration)连接 SQL Server
Kettle,现称为 Pentaho Data Integration (PDI),是一个开源的 ETL (抽取、转换、加载)工具,广泛用于数据集成、数据迁移和数据转换。在实际工作中,我们经常需要将数据从不同的数据库中提取到目标数据库中,这里我们以 Kettle 连接 SQL Server 为例来进行说明。
环境准备
在开始之前,您需要确保以下条件已满足:
- 安装 Kettle:下载并安装最新版本的 Pentaho Data Integration。
- SQL Server:确保 SQL Server 服务正在运行,并且您有连接该数据库所需的凭据。
- JDBC 驱动:下载 SQL Server 的 JDBC 驱动(如
sqljdbc4.jar
或mssql-jdbc.jar
),并将其放置在 Kettle 的lib
目录中。
创建连接
Kettle 提供了简便的用户接口来创建数据库连接。通过以下步骤连接到 SQL Server:
-
打开 Kettle 的 Spoon。
-
在主菜单中选择
Edit > Connections
,打开连接管理界面。 -
点击
New
创建一个新的连接。 -
在弹出的窗口中,填写以下信息:
- Name: 连接名称,例如
MySQLServerConnection
- Type: 选择
Microsoft SQL Server
作为连接类型 - Access: 选择
Native (JDBC)
选项 - Host name: 输入 SQL Server 的主机名或 IP 地址
- Database name: 输入要连接的数据库名
- Port number: 默认 SQL Server 端口为 1433
- Username: 输入用户名
- Password: 输入密码
- Name: 连接名称,例如
-
点击
Test
验证连接是否成功,若无问题则点击OK
保存设置。
数据提取示例
在成功连接 SQL Server 后,我们可以通过 Kettle 提取数据并进行转换。以下是一个简单的数据提取示例,假设我们从 employees
表中提取数据并导出到 CSV 文件。
数据流步骤
- 添加一个
Table Input
步骤来从 SQL Server 查询数据。 - 添加一个
Text File Output
步骤来导出数据为 CSV 文件。 - 使用
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 Input
和 Text 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 都是一个值得尝试的工具。希望您在今后的数据处理工作中能充分利用它的强大功能!