datax_web數據增量同步配置


一、根據日期進行增量數據抽取

1.頁面任務配置

打開菜單任務管理頁面,選擇添加任務

按下圖中步驟進行配置

 

 

 

  • 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配置

{
  "job": {
    "setting": {
      "speed": {
        "channel": 3,
        "byte": -1
      },
      "errorLimit": {
        "record": 0,
        "percentage": 0.02
      }
    },
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "7aAw6fAFXgqP2weyjjwIAw==",
            "password": "1Sh8F0VGrkzgnRXsNXowUAxSS1xnCyE8TrEgzQ7ZE40=",
            "column": [
              "ID",
              "CREATE_TIME",
              "USER_ID",
              "UPDATE_TIME",
              "LAST_MODIFY_USER_ID"
            ],
            "where": " CREATE_TIME >= FROM_UNIXTIME(${lastTime}) and CREATE_TIME < FROM_UNIXTIME(${currentTime})",
            "splitPk": "ID",
            "connection": [
              {
                "table": [
                  "t_test"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://127.0.0.1:3306/test"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "clickhousewriter",
          "parameter": {
            "username": "OhlJ4g2KfCRznayQNh0eng==",
            "password": "ONwWYPUDMPXDIREymhWAMQ==",
            "column": [
              "ID",
              "CREATE_TIME",
              "USER_ID",
              "UPDATE_TIME",
              "LAST_MODIFY_USER_ID"
            ],
            "connection": [
              {
                "table": [
                  "tb"
                ],
                "jdbcUrl": "jdbc:clickhouse://localhost:8123/local"
              }
            ]
          }
        }
      }
    ]
  }
}

 

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.頁面任務配置

打開菜單任務管理頁面,選擇添加任務

按下圖中步驟進行配置

 

 

  • 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配置

{
  "job": {
    "setting": {
      "speed": {
        "channel": 3,
        "byte": -1
      },
      "errorLimit": {
        "record": 0,
        "percentage": 0.02
      }
    },
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "7aAw6fAFXgqP2weyjjwIAw==",
            "password": "1Sh8F0VGrkzgnRXsNXowUAxSS1xnCyE8TrEgzQ7ZE40=",
            "column": [
              "ID",
              "CREATE_TIME",
              "USER_ID",
              "UPDATE_TIME",
              "LAST_MODIFY_USER_ID"
            ],
            "where": " ID >= ${startId} and ID < ${endId} ",
            "splitPk": "ID",
            "connection": [
              {
                "table": [
                  "t_test"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://127.0.0.1:3306/test"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "clickhousewriter",
          "parameter": {
            "username": "OhlJ4g2KfCRznayQNh0eng==",
            "password": "ONwWYPUDMPXDIREymhWAMQ==",
            "column": [
              "ID",
              "CREATE_TIME",
              "USER_ID",
              "UPDATE_TIME",
              "LAST_MODIFY_USER_ID"
            ],
            "connection": [
              {
                "table": [
                  "tb"
                ],
                "jdbcUrl": "jdbc:clickhouse://localhost:8123/local"
              }
            ]
          }
        }
      }
    ]
  }
}

 

此處的關鍵點在${startId},${endId},${}是DataX動態參數的固定格式,startId,endId就是我們頁面配置中 -DstartId='%s' -DendId='%s'中的startId,endId,注意字段一定要一致。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM