DataX Web | 增量同步
DataX Web 支持通过时间字段或主键字段实现增量数据同步,适用于大规模数据的高效传输。
基于时间字段的增量同步
通过时间字段(如 update_time)实现增量同步,以下是配置示例:
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"connection": [
{
"querySql": [
"SELECT * FROM table_name WHERE update_time >= FROM_UNIXTIME(${lastTime}) AND update_time < FROM_UNIXTIME(${currentTime})"
],
"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/database"]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"connection": [
{
"table": ["target_table"],
"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/target_database"]
}
]
}
}
}
]
}
}
注意事项:
- 配置 -DlastTime='%s' -DcurrentTime='%s' 参数,用于动态替换时间范围。
- 如果数据库时间格式为标准格式,可使用 FROM_UNIXTIME 转换。
基于主键字段的增量同步
通过主键(如 id)实现增量同步,以下是配置示例:
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"connection": [
{
"querySql": [
"SELECT * FROM table_name WHERE id >= ${startId} AND id < ${endId}"
],
"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/database"]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"connection": [
{
"table": ["target_table"],
"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/target_database"]
}
]
}
}
}
]
}
}
注意事项:
- 配置 -DstartId='%s' -DendId='%s' 参数,用于动态替换主键范围。
- 确保 JSON 中的 startId 和 endId 与任务参数一致。
关键点总结
- 动态参数:使用 ${} 占位符动态传递参数,如 ${lastTime}、${startId}。
- 任务管理:在 DataX Web 的任务管理页面中配置增量字段类型及初始值。
- 日志监控:通过日志查看 SQL 执行情况,确保增量同步逻辑正确。
通过以上配置,DataX Web 可实现高效的增量数据同步,支持定时任务和自动化调度。