Administrator
发布于 2020-08-10 / 2584 阅读 / 0 评论 / 0 点赞

DataX-进阶版-性能调优及批量执行等

DataX-进阶版-性能调优及批量执行等

1、性能调优见链接

https://www.cnblogs.com/hit-zb/p/10940849.html

2、批量执行

  • 先抽出数据库的配置参数为配置常量,用占位符代替
{
    "job": {
        "content": [
            {
                "reader": {
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:sqlserver://${sdbip}:1433;DatabaseName=${sdbname}"], 
                                "table": ["JX_ORG"]
                            }
                        ], 
                        "username": "${sdbuser}",
                        "password": "${sdbpwd}" 
                    }
                }, 
                "writer": {
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://${mdbip}:3306/${mdbname}?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&tinyInt1isBit=false&allowMultiQueries=true", 
                                "table": ["tb_org"]
                            }
                        ], 
                        "username": "${mdbuser}",
                        "password": "${mdbpwd}" 
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}
  • 然后写.bat批处理文件
@echo off
CHCP 65001
REM sqlServerIP地址
set sdbip="127.0.0.1"
REM sqlServer数据库名
set sdbname="jxs2"
REM sqlServer登陆名
set sdbuser="sa"
REM sqlServer登陆密码
set sdbpwd="123456"
REM mysqlIP地址
set mdbip="127.0.0.1"
REM mysql数据库名
set mdbname="smart_meal_order"
REM mysql登陆名
set mdbuser="root"
REM mysql登陆密码
set mdbpwd="123456"
REM 循环执行json文件
for %%i in (*.json) do (
    echo %%~nxi
    python ../datax.py -p "-Dsdbip=%sdbip% -Dsdbname=%sdbname% -Dsdbuser=%sdbuser% -Dsdbpwd=%sdbpwd% -Dmdbip=%mdbip% -Dmdbname=%mdbname% -Dmdbuser=%mdbuser% -Dmdbpwd=%mdbpwd%" %%~nxi
)
pause
  • 批处理文件文件必须和json文件放在同目录下
  • 批处理文件文件必须和json文件放在同目录下
  • 批处理文件文件必须和json文件放在同目录下

  • 知识点1
  • datax.py后可以跟的参数,更多参数详见顶部性能调优链接
datax.py -p "-Dsdbip=%sdbip% -Dsdbname=%sdbname% -Dsdbuser=%sdbuser% -Dsdbpwd=%sdbpwd% -Dmdbip=%mdbip% -Dmdbname=%mdbname% -Dmdbuser=%mdbuser% -Dmdbpwd=%mdbpwd%" xxx.json
for %%i in (*.json) do (
    echo %%~nxi
)
@echo off
setlocal enabledelayedexpansion

set sign=c:\users\suxq\desktop\sign.jar
set apkPath=c:\users\suxq\desktop\outputs\

for %%i in (%apkPath%*.apk) do (
    set oldApk=%%~nxi
    set outApk=!oldApk:unsign=google!
    echo java -jar %sign% !oldApk! !outApk!
    rem 这里是注释内容:由于 apk 文件 和 sign.jar 文件都是虚拟的,因此真正执行时会报错,这里就只是将 java 整句命令输出,从整句命令就可以确认是否会正确执行,如果这些文件都是真的话。真的脚本应该将 echo 去掉
)

评论