datax参数设置_DataX Web数据增量同步配置说明
一、根據日期進行增量數據抽取
1.頁面任務配置
打開菜單任務管理頁面,選擇添加任務
按下圖中5個步驟進行配置
1.任務類型選DataX任務
2.輔助參數選擇時間自增
3.增量開始時間選擇,即sql中查詢時間的開始時間,用戶使用此選項方便第一次的全量同步。第一次同步完成后,該時間被更新為上一次的任務觸發時間,任務失敗不更新。
4.增量時間字段,-DlastTime='%s' -DcurrentTime='%s' 先來解析下這段字符串
1.-D是DataX參數的標識符,必配
2.-D后面的lastTime和currentTime是DataX json中where條件的時間字段標識符,必須和json中的變量名稱保持一致
3.='%s'是項目用來去替換時間的占位符,比配并且格式要完全一致
4.注意-DlastTime='%s'和-DcurrentTime='%s'中間有一個空格,空格必須保留并且是一個空格
5.時間格式,可以選擇自己數據庫中時間的格式,也可以通過json中配置sql時間轉換函數來處理
注意,注意,注意: 配置一定要仔細看文檔(后面我們也會對這塊配置進行優化,避免大家犯錯)
2.JSON配置
datax.json
{
"job": {
"setting": {
"speed": {
"channel": 16
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"splitPk": "id",
"username": "root",
"password": "root",
"column": [
"*"
],
"connection": [
{
"jdbcUrl": [
"jdbc:mysql://localhost:3306/test?characterEncoding=utf8"
],
"querySql": [
"select * from test_list where operationDate >= FROM_UNIXTIME(${lastTime}) and operationDate < FROM_UNIXTIME(${currentTime})"
]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"username": "root",
"password": "123456",
"column": [
"*"
],
"batchSize": "4096",
"connection": [
{
"jdbcUrl": "jdbc:mysql://localhost:3307/test?characterEncoding=utf8",
"table": [
"test_list"
]
}
]
}
}
}
]
}
}
querySql解析
select * from test_list where operationDate >= ${lastTime} and operationDate < ${currentTime}
1.此處的關鍵點在${lastTime},${currentTime},${}是DataX動態參數的固定格式,lastTime,currentTime就是我們頁面配置中
-DlastTime='%s' -DcurrentTime='%s'中的lastTime,currentTime,注意字段一定要一致。
2.如果任務配置頁面,時間類型選擇為時間戳但是數據庫時間格式不是時間戳,例如是:2019-11-26 11:40:57 此時可以用FROM_UNIXTIME(${lastTime})進行轉換。
select * from test_list where operationDate >= FROM_UNIXTIME(${lastTime}) and operationDate < FROM_UNIXTIME(${currentTime})
二、根據自增Id進行增量數據抽取
1.頁面任務配置
打開菜單任務管理頁面,選擇添加任務
按下圖中4個步驟進行配置
1.任務類型選DataX任務
2.輔助參數選擇主鍵自增
3.增量主鍵開始ID選擇,即sql中查詢ID的開始ID,用戶使用此選項方便第一次的全量同步。第一次同步完成后,該ID被更新為上一次的任務觸發時最大的ID,任務失敗不更新。
4.增量時間字段,-DstartId='%s' -DendId='%s' 先來解析下這段字符串
1.-D是DataX參數的標識符,必配
2.-D后面的startId和endId是DataX json中where條件的id字段標識符,必須和json中的變量名稱保持一致
3.='%s'是項目用來去替換時間的占位符,比配并且格式要完全一致
4.注意-DstartId='%s'和-DendId='%s' 中間有一個空格,空格必須保留并且是一個空格
5.reader數據源,選擇任務同步的讀數據源
6.配置reader數據源中需要同步數據的表名及該表的主鍵
注意,注意,注意: 一定要仔細看文檔(后續會對這塊配置進行優化,避免大家犯錯)
2.JSON配置
datax.json
{
"job": {
"setting": {
"speed": {
"channel": 3,
"byte": 1048576
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "yRjwDFuoPKlqya9h9H2Amg==",
"password": "yRjwDFuoPKlqya9h9H2Amg==",
"splitPk": "",
"connection": [
{
"querySql": [
"select * from job_log where id>= ${startId} and id< ${endId}"
],
"jdbcUrl": [
"jdbc:mysql://localhost:3306/datax_web"
]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"username": "mCFD+p1IMsa0rHicbQohcA==",
"password": "PhYxJmA/nuBJD1OxKTRzZH8sxuRddOv83hdqDOVR+i0=",
"column": [
"`id`",
"`job_group`",
"`job_id`",
"`job_desc`",
"`executor_address`",
"`executor_handler`",
"`executor_param`",
"`executor_sharding_param`",
"`executor_fail_retry_count`",
"`trigger_time`",
"`trigger_code`",
"`trigger_msg`",
"`handle_time`",
"`handle_code`",
"`handle_msg`",
"`alarm_status`",
"`process_id`",
"`max_id`"
],
"connection": [
{
"table": [
"job_log"
],
"jdbcUrl": "jdbc:mysql://47.98.125.243:3306/datax_web"
}
]
}
}
}
]
}
}
querySql解析
select * from job_log where id>= ${startId} and id< ${endId}
1.此處的關鍵點在${startId},${endId},${}是DataX動態參數的固定格式,startId,endId就是我們頁面配置中
-DstartId='%s' -DendId='%s'中的startId,endId,注意字段一定要一致。
三、JVM啟動參數配置
此選擇為非必選,可以配置DataX啟動時JVM的參數,具體配置不做詳解。
JVM啟動參數拼接結果為: -j "-Xms2G -Xmx2G"
四、常見問題
請查看issue列表或者提issue說明問題,我們會盡快回復。
總結
以上是生活随笔為你收集整理的datax参数设置_DataX Web数据增量同步配置说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pe怎么安装win10镜像系统 如何安装
- 下一篇: 电脑怎么退出无线 电脑如何退出无线网络