|
| 1 | +#DataX Web增量配置说明 |
| 2 | + |
| 3 | +## 一、根据日期进行增量数据抽取 |
| 4 | + |
| 5 | +### 1.页面任务配置 |
| 6 | + |
| 7 | +#### 打开菜单任务管理页面,选择添加任务 |
| 8 | + |
| 9 | +#### 按下图中5个步骤进行配置 |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | +- 1.任务类型选DataX任务 |
| 14 | +- 2.辅助参数选择时间自增 |
| 15 | +- 3.增量开始时间选择,即sql中查询时间的开始时间,用户使用此选项方便第一次的全量同步。第一次同步完成后,该时间被更新为上一次的任务触发时间,任务失败不更新。 |
| 16 | +- 4.增量时间字段,-DlastTime='%s' -DcurrentTime='%s' 先来解析下这段字符串 |
| 17 | + |
| 18 | +` |
| 19 | +1.-D是DataX参数的标识符,必配 |
| 20 | +2.-D后面的lastTime和currentTime是DataX json中where条件的时间字段标识符,必须和json中的变量名称保持一致 |
| 21 | +3.='%s'是项目用来去替换时间的占位符,比配并且格式要完全一致 |
| 22 | +4.注意-DlastTime='%s'和-DcurrentTime='%s'中间有一个空格,空格必须保留并且是一个空格 |
| 23 | +` |
| 24 | +- 5.时间格式,可以选择自己数据库中时间的格式,也可以通过json中配置sql时间转换函数来处理 |
| 25 | + |
| 26 | +注意,注意,注意: 配置一定要仔细看文档(后面我们也会对这块配置进行优化,避免大家犯错) |
| 27 | + |
| 28 | + |
| 29 | +### 2.JSON配置 |
| 30 | + |
| 31 | +datax.json |
| 32 | + |
| 33 | +```json |
| 34 | +{ |
| 35 | + "job": { |
| 36 | + "setting": { |
| 37 | + "speed": { |
| 38 | + "channel": 16 |
| 39 | + } |
| 40 | + }, |
| 41 | + "content": [ |
| 42 | + { |
| 43 | + "reader": { |
| 44 | + "name": "mysqlreader", |
| 45 | + "parameter": { |
| 46 | + "splitPk": "id", |
| 47 | + "username": "root", |
| 48 | + "password": "root", |
| 49 | + "column": [ |
| 50 | + "*" |
| 51 | + |
| 52 | + ], |
| 53 | + "connection": [ |
| 54 | + { |
| 55 | + |
| 56 | + "jdbcUrl": [ |
| 57 | + "jdbc:mysql://localhost:3306/test?characterEncoding=utf8" |
| 58 | + ], |
| 59 | + "querySql": [ |
| 60 | + "select * from test_list where operationDate >= FROM_UNIXTIME(${lastTime}) and operationDate < FROM_UNIXTIME(${currentTime})" |
| 61 | + ] |
| 62 | + } |
| 63 | + ] |
| 64 | + } |
| 65 | + }, |
| 66 | + "writer": { |
| 67 | + "name": "mysqlwriter", |
| 68 | + "parameter": { |
| 69 | + |
| 70 | + "username": "root", |
| 71 | + "password": "123456", |
| 72 | + "column": [ |
| 73 | + "*" |
| 74 | + ], |
| 75 | + "batchSize": "4096", |
| 76 | + "connection": [ |
| 77 | + { |
| 78 | + "jdbcUrl": "jdbc:mysql://localhost:3307/test?characterEncoding=utf8", |
| 79 | + "table": [ |
| 80 | + "test_list" |
| 81 | + ] |
| 82 | + } |
| 83 | + ] |
| 84 | + } |
| 85 | + } |
| 86 | + } |
| 87 | + ] |
| 88 | + } |
| 89 | +} |
| 90 | +``` |
| 91 | +#### 对querySql解析 |
| 92 | + |
| 93 | +`select * from test_list where operationDate >= ${lastTime} and operationDate < ${currentTime}` |
| 94 | + |
| 95 | +- 1.此处的关键点在${lastTime},${currentTime},${}是DataX动态参数的固定格式,lastTime,currentTime就是我们页面配置中 |
| 96 | +-DlastTime='%s' -DcurrentTime='%s'中的lastTime,currentTime,注意字段一定要一致。 |
| 97 | + |
| 98 | +- 2.如果任务配置页面,时间类型选择为时间戳但是数据库时间格式不是时间戳,例如是:2019-11-26 11:40:57 此时可以用FROM_UNIXTIME(${lastTime})进行转换。 |
| 99 | +`select * from test_list where operationDate >= FROM_UNIXTIME(${lastTime}) and operationDate < FROM_UNIXTIME(${currentTime})` |
| 100 | + |
| 101 | +## 二、根据自增Id进行增量数据抽取 |
| 102 | + |
| 103 | +### 1.页面任务配置 |
| 104 | + |
| 105 | +#### 打开菜单任务管理页面,选择添加任务 |
| 106 | + |
| 107 | +#### 按下图中4个步骤进行配置 |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | +- 1.任务类型选DataX任务 |
| 112 | +- 2.辅助参数选择主键自增 |
| 113 | +- 3.增量主键开始ID选择,即sql中查询ID的开始ID,用户使用此选项方便第一次的全量同步。第一次同步完成后,该ID被更新为上一次的任务触发时最大的ID,任务失败不更新。 |
| 114 | +- 4.增量时间字段,-DstartId='%s' -DendId='%s' 先来解析下这段字符串 |
| 115 | + |
| 116 | +` |
| 117 | +1.-D是DataX参数的标识符,必配 |
| 118 | +2.-D后面的startId和endId是DataX json中where条件的id字段标识符,必须和json中的变量名称保持一致 |
| 119 | +3.='%s'是项目用来去替换时间的占位符,比配并且格式要完全一致 |
| 120 | +4.注意-DstartId='%s'和-DendId='%s' 中间有一个空格,空格必须保留并且是一个空格 |
| 121 | +5.reader数据源,选择任务同步的读数据源 |
| 122 | +6.配置reader数据源中需要同步数据的表名及该表的主键 |
| 123 | +` |
| 124 | +注意,注意,注意: 一定要仔细看文档(后续会对这块配置进行优化,避免大家犯错) |
| 125 | + |
| 126 | +### 2.JSON配置 |
| 127 | + |
| 128 | +datax.json |
| 129 | +``` |
| 130 | +{ |
| 131 | + "job": { |
| 132 | + "setting": { |
| 133 | + "speed": { |
| 134 | + "channel": 3, |
| 135 | + "byte": 1048576 |
| 136 | + }, |
| 137 | + "errorLimit": { |
| 138 | + "record": 0, |
| 139 | + "percentage": 0.02 |
| 140 | + } |
| 141 | + }, |
| 142 | + "content": [ |
| 143 | + { |
| 144 | + "reader": { |
| 145 | + "name": "mysqlreader", |
| 146 | + "parameter": { |
| 147 | + "username": "yRjwDFuoPKlqya9h9H2Amg==", |
| 148 | + "password": "yRjwDFuoPKlqya9h9H2Amg==", |
| 149 | + "splitPk": "", |
| 150 | + "connection": [ |
| 151 | + { |
| 152 | + "querySql": [ |
| 153 | + "select * from job_log where id>= ${startId} and id< ${endId}" |
| 154 | + ], |
| 155 | + "jdbcUrl": [ |
| 156 | + "jdbc:mysql://localhost:3306/datax_web" |
| 157 | + ] |
| 158 | + } |
| 159 | + ] |
| 160 | + } |
| 161 | + }, |
| 162 | + "writer": { |
| 163 | + "name": "mysqlwriter", |
| 164 | + "parameter": { |
| 165 | + "username": "mCFD+p1IMsa0rHicbQohcA==", |
| 166 | + "password": "PhYxJmA/nuBJD1OxKTRzZH8sxuRddOv83hdqDOVR+i0=", |
| 167 | + "column": [ |
| 168 | + "`id`", |
| 169 | + "`job_group`", |
| 170 | + "`job_id`", |
| 171 | + "`job_desc`", |
| 172 | + "`executor_address`", |
| 173 | + "`executor_handler`", |
| 174 | + "`executor_param`", |
| 175 | + "`executor_sharding_param`", |
| 176 | + "`executor_fail_retry_count`", |
| 177 | + "`trigger_time`", |
| 178 | + "`trigger_code`", |
| 179 | + "`trigger_msg`", |
| 180 | + "`handle_time`", |
| 181 | + "`handle_code`", |
| 182 | + "`handle_msg`", |
| 183 | + "`alarm_status`", |
| 184 | + "`process_id`", |
| 185 | + "`max_id`" |
| 186 | + ], |
| 187 | + "connection": [ |
| 188 | + { |
| 189 | + "table": [ |
| 190 | + "job_log" |
| 191 | + ], |
| 192 | + "jdbcUrl": "jdbc:mysql://47.98.125.243:3306/datax_web" |
| 193 | + } |
| 194 | + ] |
| 195 | + } |
| 196 | + } |
| 197 | + } |
| 198 | + ] |
| 199 | + } |
| 200 | + } |
| 201 | + ``` |
| 202 | + |
| 203 | +#### 对querySql解析 |
| 204 | + |
| 205 | +`select * from job_log where id>= ${startId} and id< ${endId}` |
| 206 | + |
| 207 | +- 1.此处的关键点在${startId},${endId},${}是DataX动态参数的固定格式,startId,endId就是我们页面配置中 |
| 208 | +-DstartId='%s' -DendId='%s'中的startId,endId,注意字段一定要一致。 |
| 209 | + |
| 210 | + |
| 211 | +## 三、JVM启动参数配置 |
| 212 | +此选择为非必选,可以配置DataX启动时JVM的参数,具体配置不做详解。 |
| 213 | +- JVM启动参数拼接结果为: -j "-Xms2G -Xmx2G" |
| 214 | + |
| 215 | + |
| 216 | + |
0 commit comments