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

Datax Xugudb Adapter

skill-kourou25-xugudb-dev-skills-datax-xugudb-adapter · by kourou25

阿里巴巴 DataX 数据同步工具适配虚谷数据库(XuguDB)的完整指南。当用户需要将基于 DataX 的数据同步工具配置或适配到虚谷数据库时使用此技能,包括安装部署、插件配置、任务配置、性能优化等。适用于数据同步、数据迁移、数据集成等场景。

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

Install

$ agentstack add skill-kourou25-xugudb-dev-skills-datax-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-datax-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 Datax Xugudb Adapter? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

阿里巴巴 DataX 数据同步工具虚谷数据库适配指南

概述

本技能提供阿里巴巴 DataX 数据同步工具适配虚谷数据库(XuguDB)的完整配置指南。DataX 是阿里巴巴开源的数据同步工具,支持多种数据源之间的数据同步,现在可以通过配置支持虚谷数据库作为数据源或目标数据库。

适用场景:

  • 数据同步
  • 数据迁移
  • 数据集成
  • 数据仓库建设
  • 数据备份

核心特性:

  • 支持多种数据源
  • 高性能数据同步
  • 支持全量/增量同步
  • 支持数据转换
  • 支持断点续传
  • 支持集群部署

快速开始

1. 安装部署

下载 DataX:

# 下载 DataX
wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz

# 解压
tar -xzf datax.tar.gz
cd datax

# 验证安装
python bin/datax.py --version

使用 Docker 部署:

# 拉取镜像
docker pull datax/datax:latest

# 运行容器
docker run -d --name datax \
  -v /path/to/jobs:/jobs \
  datax/datax:latest

2. 配置虚谷数据库插件

添加虚谷数据库插件:

# 创建虚谷数据库 reader 插件目录
mkdir -p plugin/reader/xugudbreader

# 创建虚谷数据库 writer 插件目录
mkdir -p plugin/writer/xugudbwriter

# 复制插件文件
cp xugudbreader/* plugin/reader/xugudbreader/
cp xugudbwriter/* plugin/writer/xugudbwriter/

# 复制 JDBC 驱动
cp xugu-jdbc-*.jar plugin/reader/xugudbreader/libs/
cp xugu-jdbc-*.jar plugin/writer/xugudbwriter/libs/

3. 创建第一个同步任务

创建任务配置文件 xugudb2xugudb.json:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "xugudbreader",
                    "parameter": {
                        "column": ["id", "name", "email", "phone", "status"],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8"],
                                "table": ["users"]
                            }
                        ],
                        "password": "SYSDBA",
                        "username": "SYSDBA",
                        "where": "status = 1"
                    }
                },
                "writer": {
                    "name": "xugudbwriter",
                    "parameter": {
                        "column": ["id", "name", "email", "phone", "status"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8",
                                "table": ["users_target"]
                            }
                        ],
                        "password": "SYSDBA",
                        "username": "SYSDBA",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 3
            }
        }
    }
}

执行同步任务:

# 执行任务
python bin/datax.py job/xugudb2xugudb.json

# 查看任务日志
tail -f log/datax.log

数据源配置

1. Reader 配置

虚谷数据库 Reader 配置:

{
    "name": "xugudbreader",
    "parameter": {
        "username": "SYSDBA",
        "password": "SYSDBA",
        "column": [
            "id",
            "name",
            "email",
            "phone",
            "status",
            "created_at"
        ],
        "connection": [
            {
                "table": [
                    "users"
                ],
                "jdbcUrl": [
                    "jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8"
                ]
            }
        ],
        "where": "status = 1 AND created_at >= '2024-01-01'",
        "querySql": [
            "SELECT id, name, email, phone, status, created_at FROM users WHERE status = 1"
        ],
        "fetchSize": 1000,
        "splitPk": "id",
        "splitStrategy": "MOD",
        "haveKerberos": false,
        "kerberosKeytabFilePath": "",
        "kerberosPrincipal": ""
    }
}

2. Writer 配置

虚谷数据库 Writer 配置:

{
    "name": "xugudbwriter",
    "parameter": {
        "username": "SYSDBA",
        "password": "SYSDBA",
        "column": [
            "id",
            "name",
            "email",
            "phone",
            "status",
            "created_at"
        ],
        "connection": [
            {
                "table": [
                    "users_target"
                ],
                "jdbcUrl": "jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8"
            }
        ],
        "writeMode": "insert",
        "batchSize": 1000,
        "preSql": [
            "DELETE FROM users_target WHERE created_at  '${last_sync_time}'"
                    }
                },
                "writer": {
                    "name": "xugudbwriter",
                    "parameter": {
                        "column": ["*"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8",
                                "table": ["users_target"]
                            }
                        ],
                        "password": "SYSDBA",
                        "username": "SYSDBA",
                        "writeMode": "replace"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 3
            }
        }
    }
}

3. 分库分表同步

分库分表同步配置:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "xugudbreader",
                    "parameter": {
                        "column": ["*"],
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:xugu://192.168.1.101:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8",
                                    "jdbc:xugu://192.168.1.102:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8",
                                    "jdbc:xugu://192.168.1.103:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8"
                                ],
                                "table": ["users_0", "users_1", "users_2"]
                            }
                        ],
                        "password": "SYSDBA",
                        "username": "SYSDBA"
                    }
                },
                "writer": {
                    "name": "xugudbwriter",
                    "parameter": {
                        "column": ["*"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:xugu://192.168.1.200:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8",
                                "table": ["users"]
                            }
                        ],
                        "password": "SYSDBA",
                        "username": "SYSDBA",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 9
            }
        }
    }
}

性能优化

1. 通道配置

通道数量优化:

{
    "job": {
        "setting": {
            "speed": {
                "channel": 5,
                "byte": 10485760,
                "record": 10000
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        }
    }
}

2. 批量处理配置

批量大小优化:

{
    "reader": {
        "name": "xugudbreader",
        "parameter": {
            "fetchSize": 1000,
            "queryTimeout": 30000
        }
    },
    "writer": {
        "name": "xugudbwriter",
        "parameter": {
            "batchSize": 1000,
            "batchTimeout": 1000,
            "writeMode": "insert"
        }
    }
}

3. 内存优化

JVM 内存配置:

# 修改 DataX 启动脚本
# 编辑 bin/datax.py

# 设置 JVM 内存参数
JVM_XMS = "2g"
JVM_XMX = "4g"
JVM_XMN = "1g"
JVM_MaxPermSize = "256m"

# 或者通过环境变量设置
export DATAX_JAVA_OPTS="-Xms2g -Xmx4g -Xmn1g -XX:MaxPermSize=256m"

4. 数据库优化

数据库连接优化:

{
    "reader": {
        "name": "xugudbreader",
        "parameter": {
            "connection": [
                {
                    "jdbcUrl": [
                        "jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8&connectionTimeout=30000&socketTimeout=60000&autoReconnect=true"
                    ],
                    "table": ["users"]
                }
            ],
            "fetchSize": 1000,
            "queryTimeout": 30000
        }
    }
}

数据转换

1. 字段映射

字段映射配置:

{
    "reader": {
        "name": "xugudbreader",
        "parameter": {
            "column": [
                "id",
                "name",
                "email",
                "phone",
                "status",
                "created_at"
            ]
        }
    },
    "writer": {
        "name": "xugudbwriter",
        "parameter": {
            "column": [
                "user_id",
                "user_name",
                "user_email",
                "user_phone",
                "user_status",
                "create_time"
            ]
        }
    }
}

2. 数据类型转换

数据类型映射:

{
    "transformer": [
        {
            "name": "dx_substr",
            "parameter": {
                "columnIndex": 1,
                "paras": ["0", "10"]
            }
        },
        {
            "name": "dx_replace",
            "parameter": {
                "columnIndex": 2,
                "paras": ["old", "new"]
            }
        },
        {
            "name": "dx_filter",
            "parameter": {
                "columnIndex": 4,
                "paras": ["greaterThan", "0"]
            }
        }
    ]
}

3. 数据过滤

数据过滤配置:

{
    "reader": {
        "name": "xugudbreader",
        "parameter": {
            "where": "status = 1 AND created_at >= '2024-01-01'"
        }
    },
    "transformer": [
        {
            "name": "dx_groovy",
            "parameter": {
                "code": "record.setColumnValue(1, record.getColumnValue(1).toUpperCase())",
                "extraPackage": []
            }
        }
    ]
}

集群部署

1. 集群配置

集群节点配置:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "xugudbreader",
                    "parameter": {
                        "column": ["*"],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8"],
                                "table": ["users"]
                            }
                        ],
                        "password": "SYSDBA",
                        "username": "SYSDBA",
                        "splitPk": "id",
                        "splitStrategy": "MOD"
                    }
                },
                "writer": {
                    "name": "xugudbwriter",
                    "parameter": {
                        "column": ["*"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:xugu://127.0.0.1:5138/SYSTEM?current_schema=SYSDBA&CHAR_SET=UTF8",
                                "table": ["users_target"]
                            }
                        ],
                        "password": "SYSDBA",
                        "username": "SYSDBA",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 10
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        }
    }
}

2. 负载均衡配置

负载均衡策略:

{
    "job": {
        "setting": {
            "speed": {
                "channel": 10,
                "byte": 104857600,
                "record": 100000
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            },
            "loadBalance": {
                "strategy": "round_robin",
                "maxParallelTasks": 5
            }
        }
    }
}

监控管理

1. 日志配置

日志级别配置:


    
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
        
    
    
    
        log/datax.log
        
            log/datax.%d{yyyy-MM-dd}.log
            30
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
        
    
    
    
    
    
    
        
        
    

2. 性能监控

监控脚本:

#!/bin/bash

# 监控 DataX 任务
monitor_datax_job() {
    local job_id=$1
    local log_file="log/datax_${job_id}.log"
    
    # 检查任务状态
    if grep -q "任务完成" "$log_file"; then
        echo "任务 $job_id 完成"
        return 0
    elif grep -q "任务失败" "$log_file"; then
        echo "任务 $job_id 失败"
        return 1
    else
        echo "任务 $job_id 执行中"
        return 2
    fi
}

# 监控所有任务
monitor_all_jobs() {
    for job_file in job/*.json; do
        local job_id=$(basename "$job_file" .json)
        monitor_datax_job "$job_id"
    done
}

# 发送报警
send_alert() {
    local message=$1
    echo "发送报警: $message"
    # 发送邮件或其他通知
}

# 主函数
main() {
    while true; do
        monitor_all_jobs
        sleep 60
    done
}

main

3. 任务调度

使用 cron 调度:

# 编辑 crontab
crontab -e

# 添加定时任务
# 每天凌晨 2 点执行数据同步
0 2 * * * /path/to/datax/bin/datax.py /path/to/jobs/daily_sync.json >> /path/to/logs/daily_sync.log 2>&1

# 每小时执行增量同步
0 * * * * /path/to/datax/bin/datax.py /path/to/jobs/incremental_sync.json >> /path/to/logs/incremental_sync.log 2>&1

故障排除

1. 连接问题

问题:无法连接到虚谷数据库。

解决方案:

# 检查数据库服务状态
systemctl status xugudb

# 检查连接配置
cat job/*.json | grep -i xugu

# 测试数据库连接
java -cp "lib/*:plugin/reader/xugudbreader/libs/*" 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. 性能问题

问题:数据同步缓慢。

解决方案:

# 检查系统资源
top
free -h
df -h

# 检查数据库性能
# 在虚谷数据库中执行
SELECT * FROM v$session WHERE status = 'ACTIVE';
SELECT * FROM v$sql ORDER BY elapsed_time DESC;

# 优化 JVM 参数
export DATAX_JAVA_OPTS="-Xms4g -Xmx8g -Xmn2g -XX:MaxPermSize=512m"

# 优化通道数量
# 在任务配置中增加通道数量

3. 内存问题

问题:内存溢出。

解决方案:

# 增加 JVM 内存
export DATAX_JAVA_OPTS="-Xms8g -Xmx16g -Xmn4g -XX:MaxPermSize=1g"

# 优化内存使用
# 1. 减少批量大小
# 2. 增加通道数量
# 3. 使用流式处理

# 监控内存使用
jstat -gcutil  1000

4. 数据类型问题

问题:数据类型转换错误。

解决方案:

{
    "reader": {
        "name": "xugudbreader",
        "parameter": {
            "column": [
                {
                    "name": "id",
                    "type": "long"
                },
                {
                    "name": "name",
                    "type": "string"
                },
                {
                    "name": "amount",
                    "type": "double"
                }
            ]
        }
    }
}

最佳实践

1. 任务设计

  • 合理设计同步策略
  • 使用增量同步减少数据量
  • 添加数据验证
  • 设置错误处理策略

2. 性能优化

  • 优化通道数量
  • 调整批量大小
  • 使用连接池
  • 监控系统资源

3. 数据质量

  • 添加数据验证
  • 清洗脏数据
  • 记录数据质量报告
  • 定期检查数据一致性

4. 安全管理

  • 加密敏感数据
  • 限制访问权限
  • 审计操作日志
  • 定期备份数据

5. 监控报警

  • 监控任务执行状态
  • 设置性能报警
  • 记录错误日志
  • 定期检查任务运行情况

相关资源

参考文档

详细配置信息请参考:references/datax-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.