本文主要介紹在HBase中如何進(jìn)行RDS增量導(dǎo)入。

注意事項(xiàng)

RDS增量導(dǎo)入功能于2023年3月10日下線。2023年3月10日后購買的LTS將無法使用RDS增量導(dǎo)入功能,2023年3月10日前購買的LTS仍可正常使用此功能。

前提條件

  • LTS的購買時(shí)間在2023年3月10日之前。
  • 已購買LTS數(shù)據(jù)遷移同步服務(wù),配置LTS操作頁面賬戶密碼。
  • 已打通LTS和HBase遷移集群的網(wǎng)絡(luò)。
  • 已添加HBase集群數(shù)據(jù)源。
  • 開通DTS訂閱服務(wù), 添加DTS數(shù)據(jù)源。

適用版本

  • 自建HBase1.x、2.x
  • EMR HBase
  • 標(biāo)準(zhǔn)版云HBase、增強(qiáng)版云HBase(單機(jī)版本、集群版本)
  • 云HBase Phoenix

任務(wù)創(chuàng)建

  1. 登錄LTS操作頁面,在左側(cè)導(dǎo)航欄中選擇導(dǎo)入Lindorm/HBase > RDS實(shí)時(shí)數(shù)據(jù)復(fù)制RDS實(shí)時(shí)數(shù)據(jù)復(fù)制
  2. 單擊創(chuàng)建通道,設(shè)置RDS數(shù)據(jù)源目標(biāo)數(shù)據(jù)源(HBase、Phoenix),輸入需要遷移的表Mapping信息。DTS訂閱通道
  3. 單擊創(chuàng)建同步通道

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"
    }
  ]
}
參數(shù)描述必選
mapping[y].srcTableNameRDS源表表名。
mapping[y].targetTableNameHBase目標(biāo)表名。
mapping[y].columnsRDS表和HBase表列的對應(yīng)。
mapping[y].columns[x].name對應(yīng)的HBase的列名。
mapping[y].columns[x].value對應(yīng)的HBase列的計(jì)算表達(dá)式,該計(jì)算表達(dá)式為Jtwig語法,當(dāng)用戶需要對源表的列進(jìn)行簡單計(jì)算得到rowkey時(shí)可以用。
mapping[y].config表的同步策略。
mapping[y].rowkeyPhoenix表的Rowkey的生成規(guī)則。
  • 支持簡單的表達(dá)式,如下示例。
    {
      "name": "cf1:hhh",
      "value": "{{ concat(title, id) }}"
    }
  • 支持動(dòng)態(tài)列,用戶可以在不預(yù)先定義列的情況下插入列。
    {
        "name": "cf1:*",
    }
  • 支持指定訂閱的起始時(shí)間(DTS訂閱通道中包含指定時(shí)間戳以后的數(shù)據(jù))。
    {
      "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對應(yīng)HBase的PUT。
    UPDATE對應(yīng)HBase的PUT。
    DELETE用戶可以配置是否同步源端的DELETE,默認(rèn)不同步。

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"
        }
      ]
    }
  ]
}
參數(shù)描述必選
mapping[y].srcTableNameRDS源表表名
mapping[y].targetTableNamePhoenix目標(biāo)表名
mapping[y].columnsRDS表和Phoenix表列的對應(yīng)
mapping[y].columns[x].namePhoenix的列名
mapping[y].columns[x].value對應(yīng)RDS列名
mapping[y].columns[x].isPk指定主鍵列
mapping[y].config表的同步策略
mapping[y].rowkeyHBase表的rowkey的生成規(guī)則