Install
$ agentstack add skill-kourou25-xugudb-dev-skills-pentaho-kettle-xugudb-adapter ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Pentaho Kettle ETL 工具虚谷数据库适配指南
概述
本技能提供 Pentaho Kettle ETL 工具适配虚谷数据库(XuguDB)的完整配置指南。Pentaho Kettle 是一个开源的 ETL(Extract, Transform, Load)工具,用于数据集成和数据仓库建设,现在可以通过配置支持虚谷数据库作为数据源或目标数据库。
适用场景:
- 数据集成
- 数据仓库建设
- 数据迁移
- 数据清洗
- 数据同步
核心特性:
- 图形化转换设计器
- 支持多种数据源
- 强大的数据转换功能
- 作业调度和监控
- 支持集群部署
- 插件扩展机制
快速开始
1. 安装部署
下载 Pentaho Kettle:
# 下载 Pentaho Data Integration (Kettle)
wget https://sourceforge.net/projects/pentaho/files/Pentaho-9.3/client-tools/pdi-ce-9.3.0.0-428.zip
# 解压
unzip pdi-ce-9.3.0.0-428.zip
cd pdi-ce-9.3.0.0-428
# 启动 Spoon (图形化工具)
./spoon.sh
使用 Docker 部署:
# 拉取镜像
docker pull pentaho/pentaho-kettle:latest
# 运行容器
docker run -d --name kettle \
-p 8080:8080 \
-v /path/to/data:/data \
pentaho/pentaho-kettle:latest
2. 配置虚谷数据库驱动
添加 JDBC 驱动:
# 将虚谷数据库 JDBC 驱动复制到 Kettle lib 目录
cp xugu-jdbc-*.jar data-integration/lib/
# 或者复制到 ext 目录
cp xugu-jdbc-*.jar data-integration/libext/
配置数据库连接:
- 启动 Spoon 图形化工具
- 点击 "工具" -> "数据库连接"
- 点击 "新建"
- 填写连接信息:
- 连接名称:XuguDB
- 连接类型:Generic database
- 自定义连接 URL:
jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8 - 自定义驱动类名:
com.xugu.cloudjdbc.Driver - 用户名:SYSDBA
- 密码:SYSDBA
- 点击 "测试" 验证连接
3. 创建第一个转换
步骤:
- 打开 Spoon
- 新建转换
- 从左侧树形菜单拖拽 "表输入" 步骤到画布
- 双击 "表输入" 步骤,配置数据库连接和 SQL 查询
- 从左侧树形菜单拖拽 "表输出" 步骤到画布
- 双击 "表输出" 步骤,配置目标数据库和表
- 按住 Shift 键,从 "表输入" 拖拽到 "表输出" 创建跳
- 点击 "运行" 按钮执行转换
数据库连接配置
1. 连接配置
JDBC 连接配置:
# 连接名称
Connection Name=XuguDB
# 连接类型
Connection Type=Generic database
# 连接 URL
Connection URL=jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8
# 驱动类名
Driver Class=com.xugu.cloudjdbc.Driver
# 用户名
Username=SYSDBA
# 密码
Password=SYSDBA
连接池配置:
# 使用连接池
Use Connection Pool=true
# 连接池配置
Initial Pool Size=5
Maximum Pool Size=20
Minimum Pool Size=5
Maximum Idle Time=60000
# 验证查询
Test Query=SELECT 1
2. 高级连接配置
连接属性配置:
# 字符集
CHAR_SET=UTF8
# 模式
current_schema=SYSDBA
# 连接超时
connectionTimeout=30000
# Socket 超时
socketTimeout=60000
# 自动重连
autoReconnect=true
# 最大重连次数
maxReconnects=3
# 重连间隔
reconnectInterval=2000
3. 多数据源配置
配置多个数据库连接:
XuguDB_Source
127.0.0.1
GENERIC
Native
5138
SYSDBA
Encrypted SYSDBA
SYSTEM
CUSTOM_URLjdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8
CUSTOM_DRIVER_CLASScom.xugu.cloudjdbc.Driver
XuguDB_Target
127.0.0.1
GENERIC
Native
5138
SYSDBA
Encrypted SYSDBA
SYSTEM
CUSTOM_URLjdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8
CUSTOM_DRIVER_CLASScom.xugu.cloudjdbc.Driver
转换设计
1. 输入步骤
表输入步骤:
-- 查询源数据
SELECT
id,
name,
email,
phone,
status,
created_at,
updated_at
FROM users
WHERE status = 1
AND created_at >= '2024-01-01'
ORDER BY id
文件输入步骤:
id,name,email,phone,status
1,张三,zhangsan@example.com,13800138001,1
2,李四,lisi@example.com,13800138002,1
3,王五,wangwu@example.com,13800138003,1
生成行步骤:
// 生成测试数据
var data = [];
for (var i = 1; i
master
192.168.1.100
8080
cluster
cluster
Y
slave1
192.168.1.101
8080
cluster
cluster
N
slave2
192.168.1.102
8080
cluster
cluster
N
2. 集群作业配置
集群作业配置:
// 集群配置
var clusterConfig = {
// 集群名称
clusterName: "ETL_Cluster",
// 主服务器
master: {
hostname: "192.168.1.100",
port: 8080,
username: "cluster",
password: "cluster"
},
// 从服务器
slaves: [
{hostname: "192.168.1.101", port: 8080},
{hostname: "192.168.1.102", port: 8080}
],
// 数据分区策略
partitioning: {
method: "HASH", // HASH, RANGE, ROUND_ROBIN
field: "id",
numPartitions: 3
}
};
监控管理
1. 日志配置
配置日志级别:
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
logs/kettle.log
logs/kettle.%d{yyyy-MM-dd}.log
30
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
2. 性能监控
监控指标:
// 性能监控配置
var monitoringConfig = {
// 监控间隔(秒)
interval: 60,
// 监控指标
metrics: [
"rows_processed",
"processing_speed",
"memory_usage",
"cpu_usage",
"connection_pool_usage",
"error_count"
],
// 报警配置
alerts: [
{
metric: "error_count",
threshold: 10,
action: "email",
recipients: ["admin@example.com"]
},
{
metric: "memory_usage",
threshold: 80,
action: "log",
message: "内存使用率超过80%"
}
]
};
3. 作业监控
作业监控脚本:
#!/bin/bash
# 监控作业执行状态
monitor_job() {
local job_id=$1
local status=$(curl -s "http://localhost:8080/kettle/job/status/?job_id=$job_id")
echo "作业状态: $status"
if [[ $status == *"ERROR"* ]]; then
echo "作业执行失败"
# 发送报警
send_alert "作业 $job_id 执行失败"
fi
}
# 监控所有作业
monitor_all_jobs() {
local jobs=$(curl -s "http://localhost:8080/kettle/job/list/")
for job in $jobs; do
monitor_job $job
done
}
# 发送报警
send_alert() {
local message=$1
echo "发送报警: $message"
# 发送邮件或其他通知
}
# 主函数
main() {
while true; do
monitor_all_jobs
sleep 60
done
}
main
故障排除
1. 连接问题
问题:无法连接到虚谷数据库。
解决方案:
# 检查数据库服务状态
systemctl status xugudb
# 检查连接配置
cat ~/.kettle/kettle.properties | grep -i xugu
# 测试数据库连接
java -cp "lib/*:extlib/*" com.xugu.cloudjdbc.Driver -url "jdbc:xugu://127.0.0.1:5138/SYSTEM" -user SYSDBA -password SYSDBA
# 检查网络连接
ping 127.0.0.1
telnet 127.0.0.1 5138
2. 性能问题
问题:ETL 作业执行缓慢。
解决方案:
# 检查系统资源
top
free -h
df -h
# 检查数据库性能
# 在虚谷数据库中执行
SELECT * FROM v$session WHERE status = 'ACTIVE';
SELECT * FROM v$sql ORDER BY elapsed_time DESC;
# 优化 JVM 参数
export PENTAHO_DI_JAVA_OPTIONS="-Xms2048m -Xmx8192m -XX:MaxPermSize=512m"
# 优化批量大小
# 在转换中调整批量大小
3. 内存问题
问题:内存溢出。
解决方案:
# 增加 JVM 内存
export PENTAHO_DI_JAVA_OPTIONS="-Xms4096m -Xmx16384m -XX:MaxPermSize=1024m"
# 优化内存使用
# 1. 减少批量大小
# 2. 使用流式处理
# 3. 增加垃圾回收频率
# 监控内存使用
jstat -gcutil 1000
4. 数据类型问题
问题:数据类型转换错误。
解决方案:
// 检查数据类型映射
var typeCheck = {
"String": "VARCHAR",
"Integer": "INT",
"Long": "BIGINT",
"Double": "DOUBLE",
"Boolean": "BOOLEAN",
"Date": "TIMESTAMP"
};
// 使用显式类型转换
var conversion = {
field: "amount",
fromType: "String",
toType: "Double",
format: "#,##0.00"
};
最佳实践
1. 转换设计
- 保持转换简单清晰
- 使用子转换分解复杂逻辑
- 添加错误处理
- 使用参数化配置
2. 作业设计
- 合理设置调度策略
- 添加错误重试机制
- 监控作业执行状态
- 记录执行日志
3. 性能优化
- 优化批量大小
- 使用连接池
- 启用并行处理
- 监控系统资源
4. 数据质量
- 添加数据验证
- 清洗脏数据
- 记录数据质量报告
- 定期检查数据一致性
5. 安全管理
- 加密敏感数据
- 限制访问权限
- 审计操作日志
- 定期备份数据
相关资源
参考文档
详细配置信息请参考:references/kettle-configuration.md
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kourou25
- Source: kourou25/xugudb-dev-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.