跳到主要内容

实时同步功能概述

1. 概述

1.1. 应用场景

企业在构建数仓时,当数据量级较大,离线同步数据时效性达不到业务需求,或者业务数据有删改,全量同步不是最佳方案时,实时同步功能在数据库数据量大或表结构规范的情况下,实现数据实时同步。将源端数据变化实时同步至目标数据库中,实现目标库实时保持和源库的数据一致。

1.2. 支持的数据库类型

源数据库
MYSQL
PostgreSQL
目标数据库
StarRocks
GuassDB

1.3. 核心功能

功能描述
实时同步支持单表增量或全量+增量的方式同步数据至目标端单表。

详见:同步方式
断点续传当任务失败或者手动暂停任务,再次运行任务会从断点同步数据,确保在中断任务期间内不会发生数据丢失。(期间源库的binlog不能丢失,否则会发生丢数)
任务告警当任务出现失败或者出现异常时,自动发送消息通知到对应用户。

详见:任务告警

2. 使用限制&注意事项

2.1. 使用限制

  • 源表、目标表类型必须为主键表
  • StarRocks目标表不可为分区表、不可有自增主键
  • 目标表不建议设置外键关联关系以及约束关系,否则会有丢数风险
  • 实时同步任务运行过程中,源表目标表不要进行DDL变更,如需要对源表和目标表的同步字段进行变更,需要停止正在运行实时任务,根据需求重新进行字段映射并重启实时任务
  • 避免向非空字段同步空值,否则会发生丢数
  • 建表语句中避免设置json格式的default值,会导致任务报错 StarRocks建表语句不支持timestamp的默认值格式,建议给一个default值

2.2. 注意事项

  • 第一次同步时建议使用先全量后增量,只获取增量是拿flink任务启动那刻的binlog日志同步数据
  • 源表目标表字段长度建议保持一致,或者目标端大于源端
  • 源表目标表数据类型映射建议保持一致,或者目标端大于源端
  • 源表表名不支持中文,空格等特殊字符;字段名不支持-, dot, space, #, @等特殊字符
  • 平台参数配置的StarRocks副本数需要小于实际StarRocks中的副本数,超过时会有如下报错,等于时当数据库状态不稳定偶现数据丢失