Skip to main content

GaussDB 迁移同步到 StarRocks

NineData 数据复制支持 GaussDB 到 StarRocks 数据源之间的数据同步。

功能介绍

NineData 数据复制支持数据源之间的结构、全量数据、增量数据的高性能复制,对于部分数据源,还提供双向复制功能,实现快捷构建异地多活业务架构。

  • 结构:支持同构及异构数据源之间的对象结构复制,很大程度上降低了两个数据源之间的数据复制门槛。
  • 全量数据:通过智能数据分片实现行级并发批量复制能力,有效保障复制性能。自主研发的新型断点续传技术,保证无主键表的数据准确性。
  • 增量数据:支持全对象类型的 DML|DDL 增量数据复制,结合行级并发、热点合并等技术,提供强劲复制性能。
  • 双向数据实时复制:直接多个节点之间的数据双向复制,保证所有节点的数据均保持最新状态。

通过以上功能,可以轻松高效地实现全量|增量数据复制全量|增量数据迁移全量|增量数据同步数据集成不停机无缝迁移等场景,为企业提供灵活和可靠的数据复制解决方案。

前提条件

  • 已将源数据源和目标数据源添加至 NineData。如何添加,请参见添加数据源
  • 源的数据源类型为 GaussDB。
  • 目标的数据源类型为 StarRocks。
  • 如需增量复制,请确保已完成如下条件:

    • 已将 NineData 的服务地址加入到逻辑复制节点的白名单。NineData 的服务地址即录入 GaussDB 数据源页面中,接入地域下方显示的 IP 地址。

      image-20241225174503405

    • 源数据源的 wal_level 参数必须为 logical

    • 源数据源的 max_replication_slots 参数必须大于 1。此参数指定服务器可以支持的最大复制槽数。默认值为10。

    • 源数据源的 max_wal_senders 参数必须大于 1。此参数指定最大的并发连接数。默认值为10。

    tip

    上述更改可以提交华为云工单进行更改。

使用限制

  • 执行数据同步前需评估源数据源和目标数据源的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源数据源和目标数据源一定的读写资源,导致数据库负载上升。
  • 需要确保同步对象中的每张表都有主键或唯一约束、列名具有唯一性,否则可能会重复同步相同数据。

操作步骤

查看同步结果

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击数据复制 > 数据复制

  3. 数据复制页面单击目标同步任务的任务 ID,页面说明如下。

    result

    序号
    功能
    说明
    1同步延迟源数据源和目标数据源之间的数据同步延迟,0 秒表示两端之间没有延迟,此时您可以选择将业务切换到目标数据源,实现平滑迁移。
    2配置告警配置告警后,系统会在任务失败时通过您选择的方式通知您。
    3更多
    • 暂停:暂停任务,仅状态为运行中的任务可选。
    • 类似创建:创建一个和当前任务配置相同的新复制任务。
    • 终止:结束未完成或监听中(即增量同步中)的任务,终止任务后无法重启任务,请谨慎操作。如果同步对象中包含触发器,会弹出触发器复制选项,请按需选择。
    • 删除:删除任务,任务删除后无法恢复,请谨慎操作。
    4结构复制(包含结构复制的场景下显示)展示结构复制的进度和详细信息。
    • 单击页面右侧的日志:查看结构复制的执行日志。
    • 单击页面右侧的refresh:查看最新的信息。
    • 单击列表中目标对象右侧操作列的查看 DDL:可以查看 SQL 回放。
    5全量复制(包含全量复制的场景下显示)展示全量复制的进度和详细信息。
    • 单击页面右侧的监控:查看全量复制过程中的各监控指标。全量复制过程中,还可以单击监控指标页面右侧的限流设置,限制每秒写入到目标数据源的速率。单位为行/秒。
    • 单击页面右侧的日志:查看全量复制的执行日志。
    • 单击页面右侧的refresh:查看最新的信息。
    6增量复制(包含增量复制的场景下显示)展示增量复制的各项监控指标。
    • 单击页面右侧的查看线程:查看当前复制任务正在执行中的操作,包含:
      • 线程号:复制任务分多个线程执行复制操作,展示当前进行中的线程号。
      • 执行 SQL:当前线程正在执行中的 SQL 语句详情。
      • 提交响应时间:当前线程的响应时间,如果该数值变大,则代表当前线程可能由于某些原因卡住。
      • 事件时间:当前线程开启的时间戳。
      • 状态:当前线程的状态。
    • 单击页面右侧的限流设置:限制每秒写入到目标数据源的速率。单位为行/秒。
    • 单击页面右侧的日志:查看增量复制的执行日志。
    • 单击页面右侧的refresh:查看最新的信息。
    7修改对象展示同步对象的修改记录。
    • 单击页面右侧的修改同步对象,可对同步对象进行配置
    • 单击页面右侧的refresh:查看最新的信息。
    8数据对比展示源数据源和目标数据源之间对比的结果。如果您未开启数据对比,请单击页面中的开启数据对比
    • 单击页面右侧的重新对比:对当前源和目标两端数据重新发起对比。
    • 单击页面右侧的停止:对比任务开始后,可单击该按钮立即停止对比任务。
    • 单击页面右侧的日志:查看一致性对比的执行日志。
    • 单击页面右侧的监控(仅数据对比显示):查看对比 RPS(每秒对比的记录数)的走势图。单击详情可以查看更早之前的记录。
    • 在对比列表右侧操作列单击details数据页签下只在不一致情况下显示):查看源端和目标端的对比详情。
    • 在对比列表右侧操作列单击sql(不一致情况下显示):生成变更 SQL,您可以直接复制该 SQL 到目标数据源执行,修改不一致的内容。
    9展开展示当前复制任务的详细信息。常用选项:
    • 导出表配置:导出当前任务的库表配置,可在新建复制任务时快速导入,以快速创建多条相同复制对象的复制链路。
    • 告警规则:配置当前任务的告警策略。

附录:预检查项一览表

检查项检查内容
源数据源连接检查检查源数据源网关状态、实例是否可达、用户名及密码准确性
目标数据源连接检查检查目标数据源网关状态、实例是否可达、用户名及密码准确性
目标库权限检查检查目标数据库的账号权限是否满足要求
源库权限检查检查源数据库的账号权限是否满足要求
目标库数据存在性检查检查待复制对象在目标数据库中是否已存在数据
目标库同名对象存在性检查检查待复制对象在目标数据库中是否已存在
检查 wal_level检查源数据源的 wal_level 是否为 logical
检查 max_wal_senders检查 max_wal_senders 是否满足复制连接数要求
检查 max_replication_slots检查 max_replication_slots 是否满足复制槽数量要求
源库无主键表存在性校验检查待复制对象是否不存在主键或唯一键

附录 1:数据类型映射表

类别GaussDB 数据类型StarRocks 数据类型
NumericTINYINT/INT1TINYINT
UINT1SMALLINT
SMALLINT/INT2 SMALLINT
UINT2INT
MEDIUMINT/INT3INT
UINT3BIGINT
BINARY_INTEGER/INT4INT
INTEGER精度和标度不为空,转换为DECIMAL, 否则转换为INT
UINT4BIGINT
BIGINT/INT8BIGINT
UINT8LARGEINT
INT16LARGEINT
NUMERIC/DECIMAL/DEC/NUMBERDECIMAL
SMALLSERIALSMALLINT
SERIALINT
BIGSERIALBIGINT
LARGESERIALLARGEINT
REALFLOAT
FLOAT4FLOAT
FLOAT8/DOUBLE/DOUBLE PRECISIONDOUBLE
BINARY DOUBLEDOUBLE
FLOAT精度和标度不为空,转换为DECIMAL, 否则转换为FLOAT
MONEYDECIMAL
BITVARCHAR
BIT VARINGVARCHAR
BOOL/BOOLEANBOOLEAN
DATE AND TIMEDATEVARCHAR
TIMESTAMP WITHOUT TIME ZONE /TIMESTAMPTZDATETIME
TIMESTAMP WITH TIME ZONE DATETIME
TIME WITH TIME ZONE /TIMETZ VARCHAR
TIMESTAMPDATETIME
TIMEVARCHAR
SMALL DATETIMEDATETIME
RELTIMEVARCHAR
ABSTIMEDATETIME
YEARTINYINT
INTERVALVARCHAR
INTERVAL YEARVARCHAR
INTERVAL MONTHVARCHAR
INTERVAL DAYVARCHAR
INTERVAL HOURVARCHAR
INTERVAL MINUTEVARCHAR
INTERVAL SECONDVARCHAR
INTERVAL DAY TO HOURVARCHAR
INTERVAL DAY TO MINUTEVARCHAR
INTERVAL DAY TO SECONDVARCHAR
INTERVAL HOUR TO MINUTEVARCHAR
INTERVAL HOUR TO SECONDVARCHAR
INTERVAL MINUTE TO SECONDVARCHAR
STRING CHAR/CHARACTERSTRING
NCHARSTRING
VARCHAR/CHARACTER VAYING/VARCHAR2STRING
NVARCHAR2STRING
TINYTEXTSTRING
TEXTSTRING
MEDIUMTEXTSTRING
LONGTEXTSTRING
CLOBSTRING
TINYBLOBSTRING
INETVARCHAR
CLOBSTRING
CIDRVARCHAR
MACADDRVARCHAR
UUIDCHAR
HLLSTRING
ACLITEMSTRING
HASH16STRING
HASH32STRING
SETSTRING
FLOATVECTORSTRING
BOOLVECTORSTRING
RANGEINT4RANGEVARCHAR
INT8RANGEVARCHAR
NUMRANGEVARCHAR
DATERANGEVARCHAR
TS RANGEVARCHAR
TS TZ RANGEVARCHAR
JSONJSON JSON
JSONBJSON
BINARYTINYBLOBSTRING
BLOBSTRING
MEDIUMBLOBSTRING
LONGBLOBSTRING
RAWSTRING
BYTEASTRING
BYTEA WITHOUT ORDER COLSTRING
BYTEA WITHOUT ORDER WITH EQUAL COLSTRING
_BYTEA WITHOUT ORDER WITH EQUAL COLSTRING
_BYTEA WITHOUT ORDER COLSTRING
SPATIALPOINTVARCHAR
LINEVARCHAR
LSEGVARCHAR
BOXVARCHAR
PATHVARCHAR
POLYGONVARCHAR
CIRCLEVARCHAR
XMLXMLVARCHAR
XML TYPEVARCHAR

相关文档

数据复制简介