1、頁面任務配置
- 1.輔助參數選擇時間自增
- 2.增量開始時間選擇,即sql中查詢時間的開始時間,用戶使用此選項方便第一次的全量同步。第一次同步完成後,該時間被更新爲上一次的任務觸發時間,任務失敗不更新。
- 3.增量時間字段,-DlastTime='%s' -DcurrentTime='%s' 先來解析下這段字符串
2、JSON配置
{ "job": { "setting": { "speed": { "channel": 3, "byte": 1048576 }, "errorLimit": { "record": 0, "percentage": 0.02 } }, "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "yRjwDFuoPKlqya9h9H2Amg==", "password": "Ua8POlNqaXkZRh5rx4DI3X8sxuRddOv83hdqDOVR+i0=", "column": [ "`id`", "`k`", "`c`", "`pad`", "`ts`" ], "splitPk": "", "connection": [ { "jdbcUrl": [ "jdbc:mysql://10.10.14.230:22066/sbtest" ], "querySql": [ "select * from sbtest1 where ts >= FROM_UNIXTIME(${lastTime}) and ts < FROM_UNIXTIME(${currentTime})" ] } ] } }, "writer": { "name": "mysqlwriter", "parameter": { "username": "yRjwDFuoPKlqya9h9H2Amg==", "password": "Ua8POlNqaXkZRh5rx4DI3X8sxuRddOv83hdqDOVR+i0=", "column": [ "`id`", "`k`", "`c`", "`pad`", "`ts`" ], "writeMode": "update", "connection": [ { "table": [ "sbtest1_copy1" ], "jdbcUrl": "jdbc:mysql://10.10.14.230:22066/sbtest" } ] } } } ] } }
注意:
在reader中的querySql解析
select * from sbtest1 where ts >= FROM_UNIXTIME(${lastTime}) and ts < FROM_UNIXTIME(${currentTime})
-
1.此處的關鍵點在${lastTime},${currentTime},${}是DataX動態參數的固定格式,lastTime,currentTime就是我們頁面配置中 -DlastTime='%s' -DcurrentTime='%s'中的lastTime,currentTime,注意字段一定要一致。
-
2.如果任務配置頁面,時間類型選擇爲時間戳但是數據庫時間格式不是時間戳,例如是:2019-11-26 11:40:57 此時可以用FROM_UNIXTIME(${lastTime})進行轉換。