datax将数据从starrocks迁移至starrocks
1 datax概述
阿里巴巴的DataX是一款开源的数据交换平台,用于实现不同数据源之间的数据同步和迁移。DataX的设计目标是提供一个通用、高效、易扩展的数据交换框架,适用于多种场景,包括数据仓库构建、数据迁移、数据同步等。
官方地址:
https://github.com/alibaba/DataX
2 datax使用情景
- 数据仓库同步
DataX 可以帮助将数据从一个数据仓库(如关系型数据库、大数据存储系统等)同步到另一个数据仓库,实现数据的迁移、备份或复制。 - 数据库迁移:当我们需要将数据从一个数据库平台迁移到另一个数据库平台时,DataX 可以帮助完成数据的转移和转换工作
- 数据集成与同步
DataX 可以用作数据集成工具,用于将多个数据源的数据进行整合和同步。它支持多种数据源,包括关系型数据库、NoSQL 数据库、文件系统等,可以将这些数据源的数据整合到一个目标数据源中。 - 数据清洗与转换
DataX 提供了丰富的数据转换能力,可以对数据进行清洗、过滤、映射、格式转换等操作。这对于数据仓库、数据湖和数据集市等数据存储和分析平台非常有用,可以帮助提高数据质量和一致性。 - 数据备份与恢复
DataX 可以用于定期备份和恢复数据。通过配置定时任务,可以将数据从源端备份到目标端,并在需要时进行数据恢复。
3 示例:将数据从starrocks迁移至starrocks
在云上购买一台4U8G的Centos 7.9服务器,安装openjdk
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
解压缩datax压缩包
tar -zxvf datax.tar.gz -C /opt/
创建datax同步配置文件starrocks2starrocks.json,内容参考如下:
{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"column": ["*"],"connection": [{"jdbcUrl": ["jdbc:mysql://10.0.19.231:32005/database名"],"table": ["表名"]}],"password": "密码","username": "root","where": "partitioned_date in ('2025-08-20')","splitPk": "partitioned_date"}},"writer": {"name": "starrockswriter","parameter": {"column": ["*"],"connection": [{"jdbcUrl": "jdbc:mysql:loadbalance://10.0.16.28:9030,10.0.10.255:9030,10.0.22.81:9030/","selectedDatabase": "database名","table": ["表名"]}],"loadUrl": ["10.0.16.28:8030","10.0.10.255:8030","10.0.22.81:8030"],"password": "密码","postSql": [],"preSql": [],"username": "admin","writeMode": "replace"}}}],"setting": {"speed": {"channel": "5"}}}
}
执行命令
python /opt/datax/bin/datax.py --jvm="-Xms6G -Xmx6G" starrocks2starrocks.json