本文为您介绍如何使用数据传输迁移云原生多模数据库 Lindorm 的数据至 OBKV。
如果数据迁移任务长期处于非活跃状态(任务状态为 失败、已暂停 或 已完成),受增量日志保留时长等影响,任务可能无法恢复。数据传输将主动释放处于非活跃状态超过 7 天的数据迁移任务,以回收相关资源,建议您为任务配置告警并及时处理任务相关异常。
背景信息
在云数据库 OceanBase 版控制台创建从 Lindorm 数据库迁移数据至 OBKV 的数据迁移任务,您可以通过结构迁移、全量迁移和增量同步,无缝迁移源端数据库中的存量业务数据和增量数据至 OBKV。
Lindorm 是面向物联网、互联网、车联网等设计和优化的云原生多模超融合数据库,数据传输目前仅支持 Lindorm 宽表引擎,详情请参见 引擎简介。
OBKV 是云数据库 OceanBase 标准版支持的标准版(Key-Value)系列,是在 OceanBase 关系型数据库(关系型+ SQL)的基础上发展而来,完全复用 OceanBase 数据库的 Shared-Nothing 架构。详情请参见 产品系列。
前提条件
数据传输已具备云资源访问权限。详情请参见 数据传输迁移角色授权。
已为源端 Lindorm 数据库创建专用于数据迁移的数据库用户,并赋予其相关权限。详情请参见 Lindorm 数据源。
已为目标端 OBKV 创建专用于数据迁移的数据库用户,并赋予其相关权限。详情请参见 创建 OBKV 实例用户及授权。
使用限制
目前数据传输支持 Lindorm 宽表引擎版本 V2.x,OBKV V4.2.1 和 V4.2.4。
数据传输仅支持迁移 Lindorm 数据库中
tablename
和columnfamily
由 0-9、a-z、A-Z 和下划线(_)组成的数据至 OBKV。迁移 Lindorm 数据库的数据至 OBKV 时,仅支持 HBase 模型的表对象,选择其他类型表对象可能导致数据质量问题。
增量同步配置中的 Kafka 分区数建议设置为 1。
注意事项
不建议将 Lindorm 数据库至 OBKV 的数据迁移任务作为长期同步的方式,仅作为数据迁移使用。如果存在下述两种情况,增量同步阶段可能导致数据质量问题,并在全量校验阶段被检测到。
如果使用指定版本(时间戳)的方式更新值,数据传输将无法识别。
如果存在 put 某个行键(rowkey)的字段数据为空字符串('')的操作,增量同步阶段可能判断为将该值删除。
迁移 Lindorm 数据库的数据至 OBKV 时,全量校验仅支持使用 IN 模式拉取数据,无法校验目标端存在源端没有的数据的场景,并且校验性能会有一定程度降级。
如果源端或目标端存在仅大小写不同的表对象,可能会因为源端或目标端大小写不敏感导致数据迁移的结果不符合预期。
节点之间的时钟不同步,或者电脑终端和服务器之间的时钟不同步,均可能导致延迟时间(增量同步/反向增量)不准确。
例如,如果时钟早于标准时间,可能导致延迟时间为负数。如果时钟晚于标准时间,可能导致延迟。
如果 Lindorm 数据库和 OBKV 的 TTL(Time to Live) 配置不一致,可能导致源端和目标端的数据不一致。
操作步骤
登录 OceanBase 管理控制台,购买数据迁移任务。
详情请参见 购买数据迁移任务。
在 数据传输 > 数据迁移 页面,单击新购买的数据迁移任务后的 配置。
如果您需要引用已有的任务配置信息,可以单击 引用配置。详情请参见 引用数据迁移任务配置。
在 选择源和目标 页面,配置各项参数。
参数
描述
迁移任务名称
建议使用中文、数字和字母的组合。名称中不能包含空格,长度不能超过 64 个字符。
标签
单击文本框,在下拉列表中选择目标标签。您也可以单击 管理标签,进行新建、修改和删除。详情请参见 通过标签管理数据迁移任务。
源端
如果您已新建 Lindorm 数据源,请从下拉列表中进行选择。如果未新建,请单击下拉列表中的 新建数据源,在右侧对话框进行新建。参数详情请参见 新建 Lindorm 数据源。
目标端
如果您已新建 OBKV 数据源,请从下拉列表中进行选择。如果未新建,请单击下拉列表中的 新建数据源,在右侧对话框进行新建。参数详情请参见 新建 OceanBase 数据源。
单击 下一步,在 选择迁移类型 页面,选择当前数据迁移任务的迁移类型。
迁移类型 包括 结构迁移、全量迁移、增量同步、全量校验 和 反向增量。
迁移类型
描述
结构迁移
结构迁移任务开始后,数据传输会源库中的数据对象定义(表、列族等)迁移到目标端数据库中,并自动过滤临时表。
全量迁移
全量迁移任务开始后,数据传输会迁移源端库表的存量数据至目标端数据库对应的表中。
增量同步
增量同步任务开始后,数据传输会同步源端数据库发生变化的数据(新增、修改或删除)至目标端数据库对应的表中。
增量同步 支持 DML 同步,您可以根据需求进行自定义配置。详情请参见 自定义配置 DDL/DML。
说明如果您在创建 Lindorm 数据源时,未绑定 Kafka 数据源,则无法选择 增量同步。
当您选择 增量同步 > DML 同步 时,请联系阿里云技术支持,确认投递到 Kafka 的数据具备有序性,否则可能出现数据不一致的风险。Lindorm 投递到 Kafka 的配置详情请参见《实时数据订阅概述》中的 使用限制。
全量校验
在全量迁移完成、增量数据同步至目标端并与源端基本追平后,数据传输会自动发起一轮针对源端数据库配置的数据表和目标表的全量数据校验任务。
反向增量
反向增量任务开始后,可以实时将业务切换后在目标端数据库产生的变更数据回流至源端数据库。
通常反向增量会复用增量同步的配置,您也可以根据实际需求进行自定义配置。
(可选)单击 下一步。在 数据源补充信息 对话框,选择 Kafka 数据源及对应的 Topic,单击 测试连通性。测试成功后,单击 保存。
说明您在新建 Lindorm 数据源时,未勾选 增量同步选项设置,而在 选择迁移类型 步骤,选择了 增量同步,才会在创建任务时弹出 数据源补充信息 对话框,提醒您补充对应的增量同步选项设置。参数详情请参见 新建 Lindorm 数据源。
单击 下一步。在 选择迁移对象 页面,选择当前数据迁移任务的迁移对象。
在左侧选中需要迁移的对象,单击 >,将其添加至右侧列表中。
数据传输支持通过文本导入对象,并支持对目标端对象进行重命名、设置分区,以及移除单个或全部迁移对象等操作。
操作
步骤
导入对象
在选择区域的右侧列表中,单击右上角的 导入对象。
在对话框中,单击 确定。
重要导入会覆盖之前的操作选择,请谨慎操作。
在 导入迁移对象 对话框中,导入需要迁移的对象。
您可以通过导入 CSV 文件的方式进行库表重命名、设置行过滤条件等操作。详情请参见 下载和导入迁移对象配置。
单击 检验合法性。
完成迁移对象导入后,请先检验合法性。
通过检验后,单击 确定。
重命名
数据传输支持重命名迁移对象的名称,对象名称的格式为
tablename$columnfamily
。详情请参见 数据库的库表重命名。重要迁移 Lindorm 数据库的数据至 OBKV 时,仅支持迁移 default namespace 中的对象至 OBKV default 数据库,且不支持对库名 default 进行重命名。
设置
仅选择 结构迁移 时,数据传输才支持分区设置,详情请参见OBKV-HBase 数据模式设计。
在 分区设置 对话框中,分区方式 目前仅支持 key 分区,您可以进行以下设置。
分区键
默认为 K,且不支持修改。
分区数
支持您自行输入,最小值为 1,最大值为 1024。
使用结合虚拟列分区
默认不勾选,表示使用 K 分区,不添加虚拟列。
勾选该项后,您需要输入 虚拟列定义,仅支持 substring 语法虚拟列。例如,
substring(K,1,4)
。
移除/全部移除
数据传输支持在数据映射时,对暂时选中到目标端的单个或多个对象进行移除操作。
移除单个迁移对象
在选择区域的右侧列表中,鼠标悬停至目标对象,单击显示的 移除,即可移除该迁移对象。
移除全部迁移对象
在选择区域的右侧列表中,单击右上角的 全部移除。在对话框中,单击 确定,即可移除全部迁移对象。
单击 下一步。在 迁移选项 页面,配置各项参数。
全量迁移
在 选择迁移类型 页面,选中 全量迁移,才会显示下述参数。
参数
描述
读取并发配置
该参数用于配置全量迁移阶段从源端读取数据的并发数,最大限制为 512.并发数过高可能会造成源端压力过大,影响业务。
写入并发配置
该参数用于配置全量迁移阶段往目标端写入数据的并发数,最大限制为 512。并发数过高可能会造成目标端压力过大,影响业务。
全量迁移速率限制
您可以根据实际需求决定是否开启全量迁移速率限制。如果开启,请设置 RPS(全量迁移阶段每秒最多可以迁移至目标端的数据行数的最大值限制)和 BPS(全量迁移阶段每秒最多可以迁移至目标端的数据量的最大值限制)。
说明此处设置的 RPS 和 BPS 仅作为限速限流能力,全量迁移实际可以达到的性能受限于源端、目标端、实例规格配置等因素的影响。
目标端表对象存在记录时处理策略
在 选择迁移类型 页面,选中 全量迁移,才会显示该参数。处理策略包括 覆盖 和 停止迁移:
选择 覆盖:可能导致目标端已存在数据被源端数据覆盖。例如,目标端存在与源端 key、timestamp 相同的数据,目标端的值将被更新为源端的值。
选择默认值 停止迁移:当目标端表对象存在数据时,全量迁移会报错不允许迁移,请处理好目标端数据后再继续迁移。
重要如果出错后单击恢复,数据传输将忽略该配置选项,继续迁移表数据,请谨慎操作。
迁移数据版本
Lindorm 支持多版本存储,通过 timestamp 标记数据行版本。如果选择 迁移数据版本 为 全部版本,全量迁移将迁移数据行的所有版本。如果选择 迁移数据版本 为 最新版本,全量迁移仅迁移最新 timestamp 数据行的版本。
增量同步
在 选择迁移类型 页面,选中 增量同步,才会显示下述参数。
参数
描述
写入并发配置
该参数用于配置增量同步阶段往目标端写入数据的并发数,最大限制为 512。并发数过高可能会造成目标端压力过大,影响业务。
增量同步速率限制
您可以根据实际需求决定是否开启增量同步速率限制。如果开启,请设置 RPS(增量同步阶段每秒最多可以同步至目标端的数据行数的最大值限制)和 BPS(增量同步阶段每秒最多可以同步至目标端的数据量的最大值限制)。
说明此处设置的 RPS 和 BPS 仅作为限速限流能力,增量同步实际可以达到的性能受限于源端、目标端、实例规格配置等因素的影响。
增量同步起始位点
如果选择迁移类型时已选择 全量迁移,该参数不显示。
如果选择迁移类型时未选择 全量迁移,但选择了 增量同步,请在此处指定迁移某个时间节点之后的数据,默认为当前系统时间。详情请参见 设置增量同步位点。
反向增量
在 选择迁移类型 页面,选中 增量同步,才会显示该区域的参数。反向增量的配置参数默认 复用增量同步配置。
您也可以取消复用增量同步配置,根据实际需求进行配置。
参数
描述
写入并发配置
该参数用于配置反向增量阶段往源端写入数据的并发数,最大限制为 512。并发数过高可能会造成源端压力过大,影响业务。
反向增量速率限制
您可以根据实际需求决定是否开启反向增量速率限制。如果开启,请设置 RPS(反向增量同步阶段每秒最多可以同步至源端的数据行数的最大值限制)和 BPS(反向增量同步阶段每秒最多可以同步至源端的数据量的最大值限制)。
说明此处设置的 RPS 和 BPS 仅作为限速限流能力,反向增量同步实际可以达到的性能受限于源端、目标端、实例规格配置等因素的影响。
增量同步起始位点
默认以正向切换(如有)为准,不支持修改。
全量校验
在 选择迁移类型 页面,选中 全量校验,才会显示该区域的参数。
Lindorm 支持多版本存储,通过 timestamp 标记数据行版本。如果选择 校验数据版本 为 全部版本,全量校验将校验数据行的所有版本。如果选择 校验数据版本 为 最新版本,全量校验仅校验最新 timestamp 数据行的版本。
单击 预检查,系统对数据迁移任务进行预检查。
在 预检查 环节,数据传输会检查数据库用户的读写权限、数据库的网络连接等是否符合要求。全部检查任务均通过后才能启动数据迁移任务。如果预检查报错:
您可以在排查并处理问题后,重新执行预检查,直至预检查成功。
您也可以单击错误预检查项操作列中的 跳过,会弹出对话框提示您跳过本操作的具体影响,确认可以跳过后,请单击对话框中的 确定。
预检查成功后,单击 启动任务。
如果您暂时无需启动任务,请单击 保存。后续您只能在 迁移任务列表 页面手动启动任务或通过批量操作启动任务。批量操作的详情请参见 批量操作数据迁移任务。数据迁移任务启动后,会根据选择的迁移类型依次执行,详情请参见 查看迁移详情。
数据传输支持在数据迁移任务运行过程中减少迁移对象,详情请参见 减少迁移对象。
重要Lindorm 数据库至 OBKV 的数据迁移任务运行过程中不支持增加迁移对象。