简介
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL
、Oracle
、OceanBase
、SqlServer
、Postgre
、HDFS
、Hive
、ADS
、HBase
、TableStore(OTS)
、MaxCompute(ODPS)
、Hologres
、DRDS
, databend
等各种异构数据源之间高效的数据同步功能。
项目地址:https://github.com/alibaba/DataX
快速开始
mysql全量同步数据将async_a同步到asycn_b中,需两个数据库之间要同步的表结构一致
配置环境
- python https://www.python.org/downloads/
- jdk http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html
下载DataX并解压
下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz
DataX自检
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
配置文件
配置文件放在job文件夹下
简单表同步
同步命令
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job_name_xxx.json
{
"job": {
"content": [
{
"reader": { // 读库
"name": "mysqlreader",
"parameter": {
"username": "root", // 数据库用户名
"password": "Pwd@123", // 数据库密码
"column": [
"*" // 表示所有字段
],
"connection": [
{
"jdbcUrl": [
"jdbc:mysql://[ip]:[port]/[database]?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false" // 注意ip、port、database为真实信息
],
"table": [
"table_name" // 表名
]
}
]
}
},
"writer": { // 写库
"name": "mysqlwriter",
"parameter": {
"writeMode": "insert", // 同步模式 insert update
"username": "root", // 数据库用户名
"password": "Pwd@12", // 数据库密码
"column": [
"*" // 表示所有字段
],
"preSql": [],
"connection": [
{
"jdbcUrl": "jdbc:mysql://[ip]:[port]/[database]?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false", // 注意ip、port、database为真实信息
"table": [
"table_name" // 表名
]
}
]
}
}
}
],
"setting": {
"speed": {
"channel": 3
}
}
}
}
条件表同步
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "Pwd@123",
"column": [
"*"
],
"connection": [
{
"jdbcUrl": [
"jdbc:mysql://[ip]:[port]/[database]?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false"
],
"table": [
"table_name"
]
}
],
"where":"", // 筛选条件
"querySql":"" // 自定义筛选SQL,配置querySql时,MysqlReader直接忽略table、column、where条件的配置
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"writeMode": "insert",
"username": "root",
"password": "Pwd@12",
"column": [
"*"
],
"preSql": [],
"connection": [
{
"jdbcUrl": "jdbc:mysql://[ip]:[port]/[database]?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false",
"table": [
"table_name"
]
}
]
}
}
}
],
"setting": {
"speed": {
"channel": 3
}
}
}
}
此处评论已关闭