本文介绍通过LTS通道服务进行RDS全量导入。

注意事项

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

前提条件

  • LTS的购买时间在2023年3月10日之前。
  • 已购买LTS数据迁移同步服务,配置LTS操作页面账户密码。
  • 已连接LTS和HBase迁移集群、RDS实例的网络。
  • 已添加HBase集群数据源或者Phoenix数据源。
  • 已添加RDS数据源。

适用版本

  • HBase
    • 自建HBase1.x、2.x
    • EMR HBase
    • 标准版云HBase、增强版云HBase(集群版本)
  • Mysql
    • 自建Mysql
    • RDS for Mysql

任务创建

  1. 购买并登录LTS
  2. 进入LTS操作页面,在左侧导航栏中选择导入Lindorm/HBase > RDS全量数据导入
  3. 单击创建迁移任务,设置RDS数据源目标数据源(HBase、Phoenix),输入需要迁移的表Mapping信息。
  4. 单击创建同步通道
  5. 查看任务进度。
  6. 迁移完成之后, 查看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"
      }
    }