AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Pentaho Kettle Xugudb Adapter

skill-kourou25-xugudb-dev-skills-pentaho-kettle-xugudb-adapter · by kourou25

Pentaho Kettle ETL 工具适配虚谷数据库(XuguDB)的完整指南。当用户需要将基于 Pentaho Kettle 的 ETL 工具配置或适配到虚谷数据库时使用此技能,包括安装部署、数据库连接、转换设计、作业调度、性能优化等。适用于数据集成、数据仓库建设、数据迁移等场景。

— No reviews yet
0 installs
33 views
0.0% view→install

Install

$ agentstack add skill-kourou25-xugudb-dev-skills-pentaho-kettle-xugudb-adapter

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-kourou25-xugudb-dev-skills-pentaho-kettle-xugudb-adapter)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Pentaho Kettle Xugudb Adapter? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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/

配置数据库连接:

  1. 启动 Spoon 图形化工具
  2. 点击 "工具" -> "数据库连接"
  3. 点击 "新建"
  4. 填写连接信息:
  • 连接名称:XuguDB
  • 连接类型:Generic database
  • 自定义连接 URL:jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8
  • 自定义驱动类名:com.xugu.cloudjdbc.Driver
  • 用户名:SYSDBA
  • 密码:SYSDBA
  1. 点击 "测试" 验证连接

3. 创建第一个转换

步骤:

  1. 打开 Spoon
  2. 新建转换
  3. 从左侧树形菜单拖拽 "表输入" 步骤到画布
  4. 双击 "表输入" 步骤,配置数据库连接和 SQL 查询
  5. 从左侧树形菜单拖拽 "表输出" 步骤到画布
  6. 双击 "表输出" 步骤,配置目标数据库和表
  7. 按住 Shift 键,从 "表输入" 拖拽到 "表输出" 创建跳
  8. 点击 "运行" 按钮执行转换

数据库连接配置

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.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.