全部產品
Search
文件中心

Lindorm:RDS全增量同步處理

更新時間:Jul 06, 2024

本文主要介紹RDS全量同步和增量同步處理的操作過程。

注意事項

RDS全增量同步處理功能於2023年3月10日下線。2023年3月10日後購買的LTS將無法使用RDS全增量同步處理功能,2023年3月10日前購買的LTS仍可正常使用此功能。

使用情境

  • RDS低成本歷史庫。

  • RDS資料全量遷移至Lindorm。

前提條件

  • LTS的購買時間在2023年3月10日之前。

  • 已登入LTS頁面。具體操作,請參見登入同步任務

  • LTS、ApsaraDB for HBase遷移叢集、RDS執行個體的網路已連通(都在同一個VPC中可以跳過)。

功能列表

  • RDS資料全增量一體同步到Lindorm寬表模型(相容HBase訪問)。

  • RDS資料變換,請參見配置說明

  • RDS多表同步。

使用限制

  • RDS全量同步支援資料來源MySQL。

  • RDS增量同步處理支援資料來源DTS。

  • 支援目標資料來源LindormSQL,Lindorm寬表模型(相容HBase訪問)。

操作步驟

  1. 在LTS操作頁面中,單擊匯入Lindorm/HBase > RDS全增量同步處理

  2. 單擊建立任務

  3. 選擇RDS資料來源、DTS資料來源以及目標資料來源。

    建立任務

  4. 單擊編輯可以查看預設配置說明,也可以修改配置說明,請參見配置說明

  5. 選擇要同步的表,單擊組建組態

    說明
    • RDS全增量同步處理先進行全量歷史資料移轉,遷移完成後在進行增量資料移轉。

    • 匯入CQL預設組建組態同RDS表欄位和類型對應,需要更改可以手動編輯修改欄位名和對應關係,詳見配置說明

    • 匯入HBase/Lindorm預設產生列簇f,RDS中的欄位和f列對應,同時rowkey為RDS主鍵字串拼接。

    • 預設組建組態會跳過RDS刪除操作如果保留需要手動修改配置,詳見配置說明

  6. 單擊建立

配置說明

SQL表同步配置說明,具體文法請參見Jtwig文法說明

{
    "reader": {
        "querySql": [
            "select * from dts.cluster where id < 1000",//全量同步查詢語句,一個語句對應一個讀取線程
      "select * from dts.cluster where id >= 1000"//建議進行拆分提高速度和減小重試代價
        ]
    },
    "writer": {
        "columns": [
            {
                "name": "id", //目標表中欄位名稱
                "value": "id",//原表中欄位名稱
                "isPk": true , //是否是主鍵
                "type": "BIGINT" //可以不填寫,預設同RDS表類型一致
            },
      {
                "name": "cluster_id",
                "value": "cluster_id",
                "isPk": false
            },
      {
                "name": "id_and_cluster",
                "value": "{{concat(id, cluster_id)}}",//支援Jtwig網域名稱對資料進行變換
                "isPk": true
            },
        ],
        "config": {
            "skipDelete": true //跳過刪除操作
        },
     "table": {
         "name": "dts.cluster", //Lindorm表名,中間使用半形句號(.)隔開
         "parameter": {
             "compression": "ZSTD"
        }
    },
    "sourceTable": "dts.cluster" 
    }
}

HBase API訪問同步配置說明。

{
    "reader": {
        "querySql": [
            "select * from dts.cluster where id < 1000",//全量同步查詢語句,一個語句對應一個讀取線程
      "select * from dts.cluster where id >= 1000"//建議進行拆分提高速度和減小重試代價
        ]
    },
    "writer": {
        "columns": [
            {
                "name": "f:id",//目標表中欄位名稱
                "value": "id", //原表中欄位名稱
        "isPk": false //不影響同步忽略
            },
            {
                "name": "f:cluster_id",
                "value": "cluster_id",
                "isPk": false
            },
      {
        "name": "f:id_and_cluster",
                "value": "{{concat(id, cluster_id)}}",//支援Jtwig網域名稱對資料進行變換
       }
        ],
        "rowkey": {
            "value": "id" //hbase模型中rowkey由RDS哪些欄位組成,支援Jtwig文法
        },
        "config": {
            "skipDelete": true//跳過刪除操作
        },
        "table": {
            "name": "dts:cluster",// Lindorm/HBase中表名
            "parameter": {
                "compression": "ZSTD",//Lindorm/HBase中,建立表壓縮演算法,推薦使用ZSTD
        "split":["1", "5", "9", "b"] //指定splitkey,對建立表進行預分區
            }
        },
        "sourceTable": "dts.cluster"
    }
}