
使用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元空间
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果