diff --git a/DataX/db_config.sh b/DataX/db_config.sh index 6c21532..79d5ef6 100644 --- a/DataX/db_config.sh +++ b/DataX/db_config.sh @@ -8,7 +8,7 @@ # 1. 源端 MySQL 配置 (Source) SRC_USER="ylt" SRC_PWD="Ycharge666" -SRC_JDBC="jdbc:mysql://rm-bp1ux6tuk49er80t9xo.mysql.rds.aliyuncs.com:3306/yltcharge" +SRC_JDBC="jdbc:mysql://rm-bp1ux6tuk49er80t9xo.mysql.rds.aliyuncs.com:3306/yltcharge?useUnicode=true\&characterEncoding=utf-8\&useSSL=false\&serverTimezone=Asia/Shanghai\&yearIsDateType=false\&zeroDateTimeBehavior=convertToNull" # 2. 目标端 Doris 配置 (Target Doris) DORIS_USER="root" @@ -20,10 +20,10 @@ DORIS_LOAD_URL="10.10.14.204:8030" # 如果目标 MySQL 的账号密码与源端一致,可以直接引用上面的变量 MYSQL_USER="ylt" MYSQL_PWD="Ycharge666" -MYSQL_JDBC="jdbc:mysql://10.10.14.210:22066/yltcharge?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai" +MYSQL_JDBC="jdbc:mysql://10.10.14.210:22066/yltcharge?useUnicode=true\&characterEncoding=utf-8\&useSSL=false\&serverTimezone=Asia/Shanghai\&rewriteBatchedStatements=true" # --- 内部参数构造 (无需修改) --- -SRC_BASE_PARAMS="-Dsrc_user=$SRC_USER -Dsrc_pwd=$SRC_PWD -Dsrc_jdbc=$SRC_JDBC" +SRC_BASE_PARAMS="-Dsrc_user=$SRC_USER -Dsrc_pwd=$SRC_PWD -Dsrc_jdbc=\"$SRC_JDBC\"" DORIS_DEST_PARAMS="-Ddest_writer_name=doriswriter -Ddest_user=$DORIS_USER -Ddest_pwd=$DORIS_PWD -Ddest_load_url=$DORIS_LOAD_URL -Ddest_jdbc=$DORIS_JDBC -Ddest_write_mode=replace" diff --git a/DataX/run_jobs_full.sh b/DataX/run_jobs_full.sh index 43f6ff2..64df98e 100644 --- a/DataX/run_jobs_full.sh +++ b/DataX/run_jobs_full.sh @@ -98,7 +98,10 @@ for JOB in "${JOBS[@]}"; do PRE_SQL="TRUNCATE TABLE $TABLE_NAME" # 注意:这里需要仔细处理参数引用,将变量作为整体传递 - PARAMS="$SRC_BASE_PARAMS $DEST_PARAMS -Dsrc_query_sql=\"$QUERY_SQL\" -Ddest_pre_sql=\"$PRE_SQL\"" + # 优化:全量同步时表已清空,强制使用 insert 模式以提升性能(覆盖 db_config.sh 中的 replace 模式) + OPTIMIZED_DEST_PARAMS="${DEST_PARAMS/dest_write_mode=replace/dest_write_mode=insert}" + + PARAMS="$SRC_BASE_PARAMS $OPTIMIZED_DEST_PARAMS -Dsrc_query_sql=\"$QUERY_SQL\" -Ddest_pre_sql=\"$PRE_SQL\"" # 打印最终的执行命令(去除敏感信息后),用于调试 # echo "执行命令: python $DATAX_PY -p \"$PARAMS\" $JOB"