本文主要介绍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访问)。
操作步骤
在LTS操作页面中,单击导入Lindorm/HBase > RDS全增量同步。
单击创建任务。
选择RDS数据源、DTS数据源以及目标数据源。
单击编辑可以查看默认配置说明,也可以修改配置说明,请参见配置说明。
选择要同步的表,单击生成配置。
单击创建。
配置说明
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"
}
}