迁移自带二级索引的表

云原生多模数据库 Lindorm二级索引在物理存储上会映射为一张数据表,与主表独立。因此,如果您想要将源Lindorm实例中的表及其二级索引结构迁移至新的Lindorm实例,则需同时迁移主表和二级索引表。本文介绍同时迁移主表及二级索引表的操作方法及相关配置说明。

前提条件

  • 检查源实例、目标实例、LTS的网络连通性。

  • 已添加源实例、目标实例的数据源。如何添加,请参见添加Lindorm宽表数据源

注意事项

  • 迁移前请确认目标实例的HDFS容量,确保可用容量足以支撑数据迁移,避免迁移过程中出现容量已满导致任务失败的情况。

  • 不支持修改表名。当存在修改表名的格式(tableA/tableB)时,将自动忽略索引表。

步骤一:确定需要迁移的表

以迁移数据库default下的主表dt和其对应的二级索引表为例。

  1. 登录集群管理系统。具体操作,请参见登录集群管理系统

  2. 在概览页面,查看目标表和二级索引表。二级索引表命名规则:<主表名>.<二级索引名>,主表dt的二级索引idx对应的二级索引表名为dt.idximage

步骤二:创建迁移任务

  1. 购买并登录LTS

  2. 在左侧导航栏,选择Lindorm/HBase迁移 > 一键迁移

  3. 单击创建任务

  4. 选择源集群目标集群

  5. 勾选操作:表结构迁移实时数据复制历史数据迁移

    • 表结构迁移:在目标集群创建表(Schema、分区信息一致),目标集群表已存在会跳过。

    • 实时数据复制:同步源集群的实时增量数据。

    • 历史数据迁移:文件级别的全量文件物理迁移。

  6. 同步/迁移的表中,填写需要迁移的表。格式为<数据库名>:<需要迁移的表名>,例如default:dt。如果需要迁移多张表,请通过换行隔开。如下图所示。

    说明

    更多同步/迁移配置的参数说明,请单击参数说明查看。

  7. 选择对索引表的操作:image

    操作

    说明

    同步主表DML、索引表DML

    索引表的数据变化会同步至目标端,但是新增索引表删除索引表的操作不会同步至目标端

    同步主表DML、索引表DDL+DML

    索引表的数据变化会同步到目标端,且新增索引表删除索引表的操作也会同步到目标端。

    重要

    当建立双向链路时,只能以一个集群为主集群同步索引DDL操作。

    假设需要将集群A的数据迁移至集群B并创建双向链路,且以集群A的索引变化为基准(A为主集群)。此时创建集群A至集群B的链路,勾选同步主表DML、索引表DDL+DML;建立集群B到集群A的链路,只能勾选同步主表DML、索引表DML

    仅同步主表DML

    不同步索引表的数据变化,仅同步主表的数据变化,同步到目标集群的主表数据会触发目标集群的索引构建。

    适用于源集群和目标集群期望构建不同索引表的场景。

    重要

    通过该方式进行表结构迁移会自动将目标表的MUTABILITY表属性设置为MUTABLE_ALL

    重要
    • 不支持修改索引表名。例如,在同步/迁移的表中填写tableA/tableB,如果tableA为主表,系统会将tableA迁移至目标集群并重命名为tableB。如果tableA为索引表,系统会自动忽略。

    • LTS会自动处理新增主表的情况。例如,当表名填写namespace:*时,在勾选表结构迁移的情况下,源集群新增主表会自动同步至目标集群。

  8. 可选)如果源集群是自建集群,在高级配置中填写{"exporterEnable":false}。如果源集群非自建集群,可跳过此步骤。

  9. 单击创建

步骤三:确认是否迁移成功

一键迁移页面单击目标任务名,查看批量迁移任务的执行进度。如果迁移任务的状态SUCCEEDED,表示数据批量迁移任务已完成。image