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
- 知识点2
- 循环出目录下的所有文件名,更多进阶操作见链接https://www.cnblogs.com/liangblog/p/9835940.html
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 去掉
)
Q.E.D.