RDS全增量同步

本文主要介绍RDS全量同步和增量同步的操作过程。

注意事项

RDS全增量同步功能于2023年3月10日下线。2023年3月10日后购买的LTS将无法使用RDS全增量同步功能,2023年3月10日前购买的LTS仍可正常使用此功能。

使用场景

  • RDS低成本历史库。

  • RDS数据全量迁移至Lindorm。

前提条件

  • LTS的购买时间在2023年3月10日之前。

  • 已登录LTS页面。具体操作,请参见登录同步任务

  • LTS、云数据库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"
    }
}