datax
执行:
python[保证是python2的就行] datax.py yourprogram.json
读插件
name: 与要读取的数据库一致,字符串
jdbcUrl: 数据库链接 ,数组
username :数据库用户名,字符串
password:数据库密码, 字符串
table :要同步的表名,数组,需保证表结构一致
column: 要同步的列名, 数组
where :选取的条件,字符串
querySql:自定义查询语句, 会自动忽略上述的同步条件
写插件
name:与要读取的数据库一致 ,字符串
jdbcUrl:数据库链接,字符串
username:数据库用户名 字符串,数据库的用户名
password: 数据库密码 ,字符串,数据库的密码
table:要同步的表名,数组,需保证表结构一致
column :列名可以不对应,但是类型和总的个数要一致 数组,需保证表结构一致
preSql: 写入前执行的语句,数组,比如清空表等,如TRUNCATE TABLE @table(或指定表名)
postSql : 写入后执行的语句 ,数组
writeMode:写入方式,默认为insert insert/replace/update
session:DataX在获取Mysql连接时,执行session指定的SQL语句,修改当前connection session属性
batchSize: 默认值:1024,一次性批量提交的记录数大小,该值可以极大减少DataX与Mysql的网络交互次数,并提升整体吞吐量。但是该值设置过大可能会造成DataX运行进程OOM情况。
模板例子:
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "dzbh",
"password": "han2018chen",
"column": ["id", "update_time"],
"connection": [
{
"table": [
"dm_dzbh_proj_operate_report_actual"
],
"jdbcUrl": [
"jdbc:mysql://ip:3306/dm?characterEncoding=utf8"
]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"username": "root",
"password": "Mysql!@123",
"column": ["id", "update_time"],
"connection": [
{
"table": [
"dm_dzbh_proj_operate_report_actual"
],
"jdbcUrl":"jdbc:mysql://ip:3306/app?characterEncoding=utf8"
}
]
}
}
}
],
"setting": {
"speed": {
"channel": 1,
"byte": 104857600
},
"errorLimit": {
"record": 10,
"percentage": 0.05
}
}
}
}