全部產品
Search
文件中心

DataWorks:情境:配置分庫分表離線同步任務

更新時間:Jun 19, 2024

DataWorks支援通過嚮導模式或指令碼模式配置離線同步任務,您可以將分庫分表資料同步至目標單表。本文以同步MySQL分庫分表資料為例進行說明。

前提條件

已準備好要同步的多個資料來源,詳情請參見支援的資料來源與讀寫外掛程式

背景資訊

  • 分庫分表要求表結構一致,因此,配置同步任務時,欄位對應將按照第一張表結構進行展示。

  • 支援MySQL(支援嚮導模式)、PolarDB(支援嚮導模式)、AnalyticDB(支援嚮導模式)、SQLServer、Oracle、PostgreSQL等類型的資料來源,配置分庫分表同步任務。

操作步驟

  1. 建立離線同步節點

  2. 配置分庫分表同步任務。

    • 嚮導模式配置分庫分表:在資料來源地區單擊+編輯資料來源,添加對應的資料來源。完整的任務配置步驟請參見通過嚮導模式配置離線同步任務

      image.png

      說明

      僅MySQL、PolarDB、AnalyticDB支援通過嚮導模式添加分庫分表,其他資料庫請切換至指令碼模式配置分庫分表同步。

    • 指令碼模式配置分庫分表:指令碼樣本如下,完整的任務配置步驟請參見通過指令碼模式配置離線同步任務

      重要

      實際運行時,請刪除下述代碼中的注釋。

      {
          "type":"job",
          "version":"2.0",
          "steps":[
              {
                  "stepType":"mysql",
                  "parameter":{
                      "envType":0,
                      "column":[
                          "id",
                          "name"
                      ],
                      "socketTimeout":3600000,
                      "tableComment":"",
                      "connection":[    //根據分庫數配置connection
                          {
                              "datasource":"datasourceName1",  //分庫分表的資料來源1
                              "table":[           //分庫分表的Table列表1
                                  "tb1"
                              ]
                          },
                          {
                              "datasource":"datasourceName2", //分庫分表的資料來源2
                              "table":[          //分庫分表的Table列表2
                                  "tb2",
                                  "tb3"
                              ]
                          }
                      ],
                      "useSpecialSecret":true,//各個資料來源使用各自的密碼
                      "where":"",
                      "splitPk":"id",
                      "encoding":"UTF-8"
                      },
                  "name":"Reader",
                  "category":"reader"
                  },
              {
                  "stepType":"odps",
                  "parameter":{
                      "partition":"pt=${bizdate}",
                      "truncate":true,
                      "datasource":"odpsname",
                      "envType":0,
                      "isSupportThreeModel":false,
                      "column":[
                          "id",
                          "name"
                      ],
                      "emptyAsNull":false,
                      "tableComment":"",
                      "table":"t1",
                      "consistencyCommit":false
                      },
                  "name":"Writer",
                  "category":"writer"
                  }
          ],
          "setting":{
              "executeMode":null,
              "errorLimit":{
                  "record":""
                  },
              "speed":{
                  "concurrent":2,
                  "throttle":false
                  }
          },
          "order":{
              "hops":[
                  {
                      "from":"Reader",
                      "to":"Writer"
                      }
              ]
          }
      }
  3. 提交並發布任務