 
            使用SeaTunnel数据同步MySQL到另一个MySQL
SeaTunnel操作MySQL数据同步需要用到 connector-jdbc 这个插件,如果没有,需要先安装
编写任务配置文件:mysql_to_mysql.conf
env {
    "parallelism"=5
    "job.mode"=BATCH
}
source {
    source000 {
        "connection_check_timeout_sec"=100
        driver="com.mysql.cj.jdbc.Driver"
        "fetch_size"=0
        password="123456"
        "plugin_name"=Jdbc
        query="select id,y,X0,X1,X2,X3,X4,X5,X6,X7 from `test`.`test_row200009_coum30`"
        "result_table_name"="t.a__tran_source_1721782563326"
        url="jdbc:mysql://192.168.1.10:3308/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8"
        user=root
        partition_column="id"
    }
}
sink {
    jdbc {
        password="123456"
        driver = "com.mysql.cj.jdbc.Driver"
        url = "jdbc:mysql://192.168.1.20:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true"
        generate_sink_sql=true
        database="test"
        table="test_002"
        user="root"
        schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST"
        batch_size=5000
        #primary_keys=["id"]
        #enable_upsert=false
    }
}
命令行单机运行
./bin/seatunnel.sh --config ./mysql_to_mysql.conf -e local实测单机限制4核2g内存的情况下运行可以跑到 5w+/s 的速度
提升速度的主要参数:
- sink 中的 jdbcurl 中加了 rewriteBatchedStatements=true 参数 
- source 中设置了 partition_column ,以及 env.parallelism 设置了并发度 5 
参考 datax 自动拼接的 jdbc 参数:
jdbc:mysql://192.168.1.20:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&yearIsDateType=false&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true&tinyInt1isBit=false
            本文是原创文章,采用 CC 4.0 BY-SA 协议,完整转载请注明来自 KK元空间
        
     评论
            
                
                隐私政策
            
            
                你无需删除空行,直接评论以获取最佳展示效果
            
        