本文主要介绍在HBase中如何进行RDS增量导入。
注意事项
RDS增量导入功能于2023年3月10日下线。2023年3月10日后购买的LTS将无法使用RDS增量导入功能,2023年3月10日前购买的LTS仍可正常使用此功能。
前提条件
- LTS的购买时间在2023年3月10日之前。
- 已购买LTS数据迁移同步服务,配置LTS操作页面账户密码。
- 已打通LTS和HBase迁移集群的网络。
- 已添加HBase集群数据源。
- 开通DTS订阅服务, 添加DTS数据源。
适用版本
- 自建HBase1.x、2.x
- EMR HBase
- 标准版云HBase、增强版云HBase(单机版本、集群版本)
- 云HBase Phoenix
任务创建
- 登录LTS操作页面,在左侧导航栏中选择 。
- 单击创建通道,设置RDS数据源和目标数据源(HBase、Phoenix),输入需要迁移的表Mapping信息。
- 单击创建同步通道。
HBase表映射
{
"mapping": [
{
"columns": [
{
"name": "cf1:hhh",
"value": "{{ concat(title, id) }}"
},
{
"name": "cf1:title",
"value": "title"
},
{
"name": "cf1:*"
}
],
"config": {
"skipDelete": true
},
"rowkey": {
"value": "{{ concat('idg', id) }}"
},
"srcTableName": "hhh_test.test",
"targetTableName": "default:_test"
}
]
}
参数 | 描述 | 必选 |
---|---|---|
mapping[y].srcTableName | RDS源表表名。 | 是 |
mapping[y].targetTableName | HBase目标表名。 | 是 |
mapping[y].columns | RDS表和HBase表列的对应。 | 是 |
mapping[y].columns[x].name | 对应的HBase的列名。 | 是 |
mapping[y].columns[x].value | 对应的HBase列的计算表达式,该计算表达式为Jtwig语法,当用户需要对源表的列进行简单计算得到rowkey时可以用。 | 是 |
mapping[y].config | 表的同步策略。 | 否 |
mapping[y].rowkey | Phoenix表的Rowkey的生成规则。 | 是 |
- 支持简单的表达式,如下示例。
{ "name": "cf1:hhh", "value": "{{ concat(title, id) }}" }
- 支持动态列,用户可以在不预先定义列的情况下插入列。
{ "name": "cf1:*", }
- 支持指定订阅的起始时间(DTS订阅通道中包含指定时间戳以后的数据)。
{ "config": { "startOffset":1569463200 // 秒 }, "mapping": [ "srcTableName": "hhh_test.test", "targetTableName": "default:test", "columns": [ { "name": "cf1:*" } ], "config": { "skipDelete": true }, "rowkey": { "value": "{{ concat('idg', id) }}" } } ] }
- DML支持的SQL操作如下表。
操作 支持 备注 INSERT 是 对应HBase的PUT。 UPDATE 是 对应HBase的PUT。 DELETE 是 用户可以配置是否同步源端的DELETE,默认不同步。
Phoenix表映射
{
"mapping": [
{
"srcTableName": "hhh_test.phoenix_test",
"targetTableName": "phoenix_test",
"config": {
"skipDelete": true
},
"columns": [
{
"name": "id",
"isPk": true
},
{
"name": "title",
"value": "title"
},
{
"name": "ts",
"value": "ts"
},
{
"name": "datetime",
"value": "datetime"
}
]
}
]
}
参数 | 描述 | 必选 |
---|---|---|
mapping[y].srcTableName | RDS源表表名 | 是 |
mapping[y].targetTableName | Phoenix目标表名 | 是 |
mapping[y].columns | RDS表和Phoenix表列的对应 | 是 |
mapping[y].columns[x].name | Phoenix的列名 | 是 |
mapping[y].columns[x].value | 对应RDS列名 | 是 |
mapping[y].columns[x].isPk | 指定主键列 | 是 |
mapping[y].config | 表的同步策略 | 否 |
mapping[y].rowkey | HBase表的rowkey的生成规则 | 是 |