RDS全量数据迁移HBase、Phoenix
前提条件
- 购买BDS数据迁移同步服务,配置BDS操作页面账户密码,并登陆BDS操作页面
- 打通BDS和HBase迁移集群、RDS实例的网络
- 添加HBase集群数据源或者Phoenix数据源
- 添加RDS数据源
版本
HBase
- 自建HBase1.x、2.x
- EMR HBase
- 标准版云HBase、增强版云HBase(集群版本)
Mysql
- 自建Mysql
- RDS for Mysql
任务创建
- 进入BDS操作页面,点击HBase导入导出-> RDS全量数据迁移HBase
- 点击创建迁移任务,选择RDS数据源和HBase(Phoenix)集群,输入需要迁移的表Mapping信息
- 查看任务进度
- 迁移完成之后, 查看HBase表
参数说明
HBase表映射
{
"reader": {
"querySql": [ // 根据querySql的数量进行任务拆分,分布式运行
"select id, title, content from rds.test where id < 8",
"select id, title, content from rds.test where id >= 8"
]
},
"writer": {
"columns": [
{
"name": "f1:col1",
"value": "{{ concat(title, id) }}" // 将mysql中的数据title和id字段进行拼接,作为HBase f1:col1列的值
},
{
"name": "f1:col2",
"value": "content",
"type": "string" // type 字段可选, 默认都按string类型类处理写入HBase
},
{
"name": "f1:*" // mysql 没有匹配到的列会走默认的匹配
}
],
"rowkey": {
"value": "{{ concat('idg', id) }}"
},
"tableName": "default:t1"
}
}
- 支持简单的表达式,计算表达式为jtwig语法,如下
{
"name": "cf1:hhh",
"value": "{{ concat(title, id) }}"
}
- 支持动态列,没有匹配到的列会走默认的匹配
{
"name": "cf1:*",
}
Phoenix表映射
{
"reader": {
"querySql": [
"select id, title, ts, datetime, date, time, b, f, d from rds.test where id < 8",
"select id, title, ts, datetime, date, time, b, f, d from rds.test where id >= 8"
]
},
"writer": {
"columns": [
{
"isPk": true,
"name": "id"
},
{
"name": "title",
"value": "title" // mysql中title字段对应Phoenix中的title, 如果字段名相同可不填
},
{
"name": "ts"
},
{
"name": "datetime"
},
{
"name": "date"
},
{
"name": "time"
},
{
"name": "b"
},
{
"name": "f"
},
{
"name": "d"
}
],
"tableName": "dtstest"
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论