You need to enable JavaScript to run this app.
导航
实时整库同步
最近更新时间:2024.06.11 19:38:58首次发布时间:2023.08.14 10:14:48

一键实时整库同步解决方案支持多种数据源之间,进行数据的全增量一体化同步,方案中先将源端全量数据通过离线任务方式同步迁移,然后再通过实时同步增量任务,将数据采集至目标端数据源中。
您也可以单独选择进行实时增量数据同步,该场景适用于您已经通过其他方式将全量数据同步至目标端数据源库表中。您可根据实际场景,进行同步方案选择配置,助力您将业务数据更高效、更便捷的同步至目标数据库中。
本文将为您介绍如何创建实时整库同步解决方案,将源端 MySQL、VeDB、PostgreSQL、SQLServer、Mongo、Oracle 数据采集至湖仓一体分析服务(LAS)、Doris、StarRocks、Elasticsearch、ByteHouse 云数仓版(ByteHouse CDW)、ByteHouse 企业版(ByteHouse CE)、Hudi 数据源的库表/索引中。

1 关键步骤概述

  1. 目标表创建:将源端表数据写入到目标表中,目标表创建可以是以下三种方式:
    • 已有表:手动在目标数据库环境中,已创建好源端同名表来接收数据,此时方案步骤执行时,将跳过建表的流程。
    • 自动建表:在目标数据库环境中,还没有与源端数据表同名的目标表,此时方案步骤执行时,会自动在流程中创建同名目标表。
    • 数据表不存在:当目标端无法通过 DataSail 自动建表时,您需要进入目标端数据库中,手动创建数据表后,再继续配置解决方案。
  2. 增量实时任务位点初始化:首次启动时,会自动指定增量流式任务的初始化位点位置。
  3. 任务创建:视实际使用场景,将会创建不同的任务类型。
    • 全增量场景:一次性全量批式任务+增量流式任务
      1. 首先创建一次性全量批式任务,将历史全量数据,同步至目标端数据库表中;
      2. 待全量批式任务执行完成后,再创建增量流式任务,通过启动流式任务的方式,将源端数据实时同步至目标端数据库表中。

      说明

      同步方案产生的一次性全量批式任务个数,与方案中设置的数据来源表个数有关。

    • 增量场景:增量流式任务
      仅创建增量流式任务,通过流式任务运行的方式,仅将源端增量数据实时同步至目标端数据库表中。

2 前置操作

  1. 已开通并创建 DataLeap 项目,创建的全量增量任务均会同步到该项目下。详见新建项目
  2. 已开通全域数据集成(DataSail)产品。详见服务开通
  3. 已创建合适资源规格的独享数据集成资源组,并将其绑定至创建成功的 DataLeap 项目下。购买操作详见资源组管理,项目绑定操作详见数据集成资源组
  4. 已完成来源和目标端的数据源准备,创建数据源操作详见配置数据源

3 注意事项

  1. 同步解决方案同时支持选择的表数量目前上限为 2000 张,但建议先以 100 张以下表数量来试用。
  2. 目标端数据库需要提前先创建好,暂不支持在解决方案中自动创建。
  3. 目前表建立方式为选用已有表时,需要保证目标表 Schema 和源表 Schema 的表名称、字段名称和字段数量数量保持一致。
  4. 解决方案同步数据至目标端 LAS、Doris、StarRocks、ByteHouse CDW、ByteHouse CE 时,仅支持将数据写入非分区表,暂不支持写入数据至分区表。

4 数据同步解决方案

4.1 数据源配置

在配置实时整库同步解决方案前,您需在数据源管理界面中,配置来源端和目标端相应的数据源。详见配置数据源

  • 独享数据集成资源组所在的 VPC 需要和来源端、目标端数据库实例所在的 VPC 保持一致,火山引擎 RDS 数据库类型需要将 VPC 中的 IPv4 CIDR 地址,加入到 RDS 数据库的白名单下,保证资源组与数据源之间的网络互通;
    图片
  • 若资源组和数据源实例不在同一 VPC 环境时,您可通过公网或者通过专线形式进行互通。网络配置详见网络连通解决方案

4.2 新建数据实时整库同步

数据源配置操作准备完成后,您可开始进行实时整库同步方案配置:

  1. 登录 DataSail 控制台
  2. 在左侧导航栏中选择数据同步方案,进入同步方案配置界面。
  3. 单击目录树中项目选择入口,选择已创建的 DataLeap 项目。
    图片
  4. 单击右上角新建数据同步解决方案按钮,下拉选择实时整库同步按钮,进入整库实时同步方案配置界面。按照以下配置,完成方案新建。

进入配置界面后,您可按实际场景需求,完成方案的基本配置、数据来源配置、数据缓存配置、数据目标配置、DDL 策略配置、运行配置等六个流程配置。

4.3 基本配置

基本配置参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

基本信息

*方案名称

输入整库实时同步方案名称。只允许字母、数字、下划线、连字符,且需在 64 个字符以内。

说明

解决方案实际生成的任务名称定义:

  • 流任务名称:方案名称_解决方案 ID;
  • 批任务名称:库名_目标表名_方案名称_解决方案 ID。

方案描述

输入此方案的描述信息,方便后续维护管理。

*保存至

下拉选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理

*链路类型

下拉选择来源和目标端数据源类型,不同来源数据源支持写入的目标数据源类型不同,详见产品配置界面。

  • 来源支持类型:MySQL、VeDB、PostgreSQL、SQLServer、Mongo、Oracle
  • 目标支持类型:LAS、Doris、StarRocks、Elasticsearch、ByteHouse 云数仓版、ByteHouse 企业版、Hudi

网络与资源配置

*数据来源

下拉选择数据源管理中创建成功的源端数据源名称。

数据缓存

选择实时同步解决方案执行过程,采集数据时是否使用缓存配置方式:

  • 勾选使用缓存, 需选择已创建成功的 Kafka、BMQ、DataSail(内置 Topic) 数据源,通过中间缓存来进行实时数据同步。

    说明

    DataSail(内置 Topic) 、BMQ 数据源缓存方式,目前仅支持 MySQL2Doris、MySQL2StarRocks、MySQL2Elasticsearch 通道进行该缓存方式配置。

  • 不勾选,不使用缓存,通过直连数据库的方式采集源端数据。

缓存说明详见“4.5 数据缓存配置”。

*数据目标

下拉选择数据源管理中创建成功的目标端数据源名称。

*离线/实时集成任务资源组(离线全量/实时整理)

下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:

  • 选择的资源组,需要确保能与源端、中间缓存数据源、目标端数据源连通,您可单击下方的立即连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。
  • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

方案基本配置完成后,单击右下角下一步按钮,进行方案的数据来源配置。

4.4 数据来源配置

在数据来源配置界面中,完成数据来源设置与库表映射规则匹配策略:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

数据源设置

*数据源

下拉选择数据源管理中创建成功的数据源。若此前仍未创建相应数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。

*表选择模式

支持通过指定表或正则方式进行表的选择:

  • 指定表:您可手动指定选择一个库中的部分表进行实时同步。

    注意

    指定表模式,后续无法自动响应新增表 DDL 消息。

  • 正则:您可通过正则匹配的方式,监控指定库,并同步对应库下所有符合规则的表。

*数据表

指定表模式选择时,在左侧您可选择来源数据库表信息:

  1. 以整库,或单表多表形式展开进行勾选。

    说明

    1. 暂不支持同时选择多个数据库下的表。
    2. 数据库下没有表存在时,不支持勾选同步。
  2. 单击中间添加图标,将已选择的库表,添加至已选列表中,同理,您也可通过撤回图标,撤回已选中的表。
    图片

*源库、源 Schema、源表/集合选择限定条件

正则模式选择时,您可通过设置源库、源 Schema、源表的限定条件,来获取源表信息。
图片
单击添加规则按钮,完成限定条件规则的添加,Schema、源表条件支持添加多个规则,取合集;

  • 限定条件:您可通过指定源库、源表的名称来限定,也可通过正则表达式匹配的方式,快速获取源端库表信息。
  • 类型:依据限定条件中输入的条件,下拉选择匹配的类型,支持正则个例类型配置。

    说明

    实时整库同步解决方案,同时仅支持一个库的同步,因此源库选择时,仅支持个例类型配置,且不支持删除操作。

  • 删除:您也可以单击操作列下的删除按钮,完成规则删除。

表/集合

单击获取源表/获取源集合按钮,平台根据源库、源表/集合限定条件的设置,自动加载符合条件的表/集合。

注意

选择的多个库表,需保证其 Schema 信息一致(包括字段名称、字段类型)。
数据字段模块内系统默认展示第一个数据源中第一张表的元数据字段信息,若多表间字段不一致可能会导致运行失败。

映射规则

*库表匹配策略

支持选择与来源库表同名和自定义方式匹配:

  • 与来源库表同名:来源库表选择完成后,解决方案默认将目标端的库表名称,与源端库表信息同名,若目标端不存在同名数据表时,将会自动创建。

    注意

    • 目前暂不支持自动创建同名数据库,您需先在目标端,如 StarRocks 集群中创建好同名的数据库。
    • 目标端为 EMR Doris 半托管集群数据源时,建议开启集群高可用服务,使 Doris Master 节点数量在 3 个以上,保障 DataSail 解决方案自动创建表成功;若 Doris 半托管集群仅有 1 Master+1 Core 或 1 Master+2 Core 节点数量时,您需在目标 Doris 数据库中进行手动创建表,并需手动指定副本参数 replication_num,示例如下:
      CREATE TABLE demo.t3 (pk INT, v1 INT SUM) AGGREGATE KEY (pk) DISTRIBUTED BY hash (pk) PROPERTIES ('replication_num' = '1');
      
  • 自定义:您也可通过自定义匹配方式,设置源端与目标库表的匹配策略,配置方式详见“库表映射规则说明”。

数据来源配置完成后,单击右下角下一步按钮,进行方案的数据缓存配置。

4.5 数据缓存配置

使用缓存,可对同步任务进行缓冲,在性能和稳定性上有所提升,适合对稳定性要求高以及数据量大的场景,但需额外增加缓存数据源及相应成本,请按需配置。
实时整库同步解决方案,目前支持“增加缓存”、“无需缓存,直接同步”这两种缓存配置方式:

4.5.1 增加缓存

可通过使用中间缓存来采集源端数据,增加缓存需要绑定数据来源对应的 CDC 采集数据进入的 MQ。若还未创建采集方案,您需到解决方案-实时数据采集界面,进行方案创建。详见实时数据采集方案。这种方式需要额外配置 Kafka 数据源、DataSail(内置 Topic) 数据源、BMQ 数据源。

说明

Kafka、BMQ 数据源类型,也可通过创建相应的 CDC 数据订阅采集任务,将源端 MySQL 中的数据,通过数据库传输服务中数据订阅方式,实时采集到 Kafka 实例中。在数据来源配置时绑定对应的 CDC 采集数据进入的 Kafka。数据订阅操作详见数据库传输服务

  1. 数据源选择:根据实际情况,按需选择数据源类型。
  2. 订阅格式:需根据不同缓存数据源类型中的数据格式进行选择
    • Kafka 数据源:支持选择火山 MySQL PROTODebezium Json 两种格式;
    • DataSail(内置 Topic) 数据源:仅支持选择 Debezium Json 格式;
    • BMQ 数据源:仅支持选择 Debezium Json 格式。
  3. 映射配置:
    数据源类型选择完成后,单击刷新数据源和Topic映射按钮,根据数据源类型,进行相关的映射配置。您可在下拉框中,选择已创建的来源、目标端数据源、Topic 名称和绑定解决方案信息。

    说明

    实时采集解决方案支持绑定多个。

    • 单击“添加映射配置”按钮,您可按需添加多个数据源和 Topic 映射关系;
    • 单击“映射字段全量配置”按钮,可为多个映射关系,批量操作添加对应的 Topic 和绑定解决方案操作。

4.5.2 无需缓存,直接同步

无需缓存方式,可通过直接采集 MySQL Binlog 日志,进行数据实时读取。

说明

火山引擎中 RDS 云数据库已默认开启 Binlog 协议,若源端为其他云数据库或自建数据库,您需确认数据库是否已开启 Binlog。

确认数据缓存同步方式后,单击右下角下一步按钮,进入数据目标设置。

4.6 数据目标设置

在数据目标配置界面中,完成数据源目标端设置与映射相关配置:
图片
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

数据源设置

*数据源

下拉选择数据源管理中创建成功的目标端数据源。
若此前仍未创建相应数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。

映射配置

高级配置

使用已有表配置

当目标表已存在,即下方“表建立方式”为“使用已有表”时,若此时源表与目标表中已有字段列不一致时,可通过列匹配规则,根据实际场景进行列映射规则设置,目前支持自动映射、同名取交映射两种匹配规则配置:

  • 自动映射:默认映射规则,字段列不一致时,提示目标检查异常。
  • 同名取交映射:字段列不一致时,仅同名映射匹配到的字段进行数据同步,未匹配到的字段不做同步,任务正常执行。

高级参数配置

您可为同步解决方案配置全局的高级参数,以 key-value 的形式输入。

*刷新源表和目标表映射

单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作:

筛选库表

单击漏斗按钮,您可输入源端与目标端的库表信息,进行筛选搜索。

同步主键

默认设置为源表中设置的主键字段信息,您可下拉进行选择源表中其余字段作为目标表的主键字段。

排序策略

排序策略将影响实时增量任务,若无排序字段,可能会出现上游乱序导致下游数据源错误,建议增加排序策略。

  • 无排序:根据上游数据写入顺序,新数据覆盖旧数据;
  • 自适应排序:根据目标表属性自动推断排序策略,表/索引建立方式为使用已有表数据表不存在时,会选择自适应排序方式。

表建立方式

表建立方式分为使用已有表、自动建表数据表不存在几种方式:

  • 使用已有表:当映射配置检查,目标端存在与源端表同名的表名时,则会直接使用已有表,来执行方案。

    注意

    使用已有表时,目标端为 ByteHouse CDW、ByteHouse CE 表时,需保证以下表结构:

    • ByteHouse CDW 表,表配置时必须要设置唯一键字段;
      图片
    • ByteHouse CE 表,表引擎必须选择为 HaUniqueMergeTree:
      图片
  • 自动建表:当映射配置检查,目标端不存在与源端表同名的表名时,将会通过任务,以定义的目标表名,自动创建目标表。
  • 数据表不存在:当目标端无法通过 DataSail 自动建表时,您需要进入目标端数据库中,手动创建数据表后,再继续配置解决方案。

分区字段

LAS、Doris、StarRocks、ByteHouse 云数仓版、ByteHouse 企业版 数据源类型,可为目标表设置分区字段信息。
支持选择无分区、字段分区、分区表达式三种分区字段类型:

  • 无分区:目标表不创建分区;
  • 字段分区:即支持根据源表字段中的数据进行动态分区设置,支持选取或输入关键词搜索表中的字段作为分区,支持多选;
  • 分区表达式:可通过输入分区表达式,如时间分区表达式 ${date} 形式进行设置。更多时间表达式详见平台时间变量与常量说明

注意

目标为 StarRocks 数据源类型时,仅 StarRocks 3.X 版本支持写入分区表,2.X StarRocks 版本不支持写入分区。StarRocks 分区设置详见 StarRocks 表达式分区

全量同步

  • 按钮开启时,同步解决方案将创建全量离线任务和实时增量任务,进行历史全量数据和增量数据的同步。
  • 按钮关闭时,同步解决方案仅创建实时增量任务,仅同步后续增量变更的源端表数据。

清表策略

您可根据实际情况,选择是否开启清表策略,开启表示在数据写入目标表前,会清空原有目标表中的数据,通常是为了使任务重跑时支持幂等操作。

查看字段信息

可以查看来源表、目标表的字段名和其对应的字段类型等信息。在弹窗中,您也可对自动创建的目标表字段类型和字段描述信息,进行手动编辑调整。

配置

您可为同步解决方案配置多表映射高级参数,以 key-value 的形式输入。

移除

单击操作列中的更多 > 移除按钮,可将当前源端与目标端的映射删除。

重置

单击操作列中的更多 > 重置按钮,可重置源表与目标表的映射关系。

说明

当目标表数量较多时,您可勾选多个表后,批量对目标表进行全量同步设置、清表策略设置移除等操作。

数据目标配置完成后,单击右下角下一步按钮,进行方案的 DDL 策略配置。

4.7 DDL 策略配置

在实时整库 CDC、分库分表、离线整库解决方案中,通常会遇到较多来源端新增表、新增列等 DDL 操作场景。此时您可根据实际业务场景,对来源端不同的 DDL 消息,在配置解决方案同步到目标端数据源时,可进行预设不同的处理策略。
DDL 消息处理策略说明详见解决方案 DDL 策略配置
DDL 策略配置完成后,单击右下角下一步按钮,进行任务运行配置。

4.8 运行配置

  1. 离线全量同步
    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项

    说明

    *离线集成任务资源组

    下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:

    • 选择的资源组,需要确保能与源端、目标端数据源连通,您可单击右侧的连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。
    • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

    *默认 Quota 数

    设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quota 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。

    *期望最大并发数

    设置离线任务同步时,可以从源端并行读取或并行写入目标端的最大线程数。
    并发数影响数据同步的效率,并发设置越高对应资源消耗也越多,由于资源原因或者任务本身特性等原因,实际执行时并发数可能小于等于设置的期望最大并发数。

    集成高级参数设置

    打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入离线任务所需的高级参数。支持参数详见高级参数

  2. 实时增量同步
    设置解决方案中实时增量任务的运行参数情况。
    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项

    说明

    *实时集成任务资源组

    下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:

    • 选择的资源组,需要确保能与源端、目标端数据源连通,您可单击右侧的连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。
    • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

    *资源设置

    可通过自定义和默认两种设置方式,进行实时任务运行资源的设定,如单TaskManager CPU数量、单TaskManager内存大小、JobManager CPU数量等。

    说明

    默认设置中,各运行资源设置如下:

    • 单 TaskManager CPU 数:2
    • 单 TaskManager 内存:4096 MB
    • 单 TaskManager slot 数:4
    • JobManager CPU 数:1
    • JobManager 内存:2048 MB

    集成高级参数设置

    打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入实时任务所需的高级参数。支持参数详见高级参数

    Flink 运行参数设置

    支持输入 Flink 相关的动态参数和执行参数,具体参数设置详见 Flink 官方文档

  3. 调度设置
    离线全量任务还需要任务调度资源组,来支持任务下发分配至独享数据集成资源组中运行,目前调度资源组支持选择公共调度资源组独享调度资源组

  4. 提交方案
    方案运行配置完成后,单击右下角提交方案按钮,进行方案的提交,在弹窗中,您可根据实际情况勾选方案是否立即执行,并单击确定按钮,完成实时数据同步解决方案的创建。

5 实时整库方案运维

方案创建完成后,进入到方案列表界面,便可查看方案的执行概况,同时您也可以在列表界面进行以下操作:

5.1 解决方案筛选

在创建众多的解决方案后,您可在方案列表界面通过搜索或筛选的方式进行快速定位方案。

  • 您可通过方案名称、方案 ID、数据来源名称、数据目标名称等信息,输入搜索的方式进行筛选。
  • 您也可通过下拉选择方案操作状态、方案类型、数据来源名称、数据目标类型、创建人等选项进行任务的定位操作。

5.2 解决方案运维

在方案列表的运维列中,您可操作执行方案运维相关内容:

说明

启动中的解决方案不支持进行提交执行、方案编辑、方案删除操作。

运维操作

说明

执行详情

  • 单击运维操作列的执行详情按钮,进入解决方案执行详情界面,查看方案的具体执行步骤,如目标表创建,增量实时任务、全量离线任务的创建、发布、启动等一系列详情步骤。
    在具体步骤的右侧,您可单击单个步骤的执行详情按钮,您可进入查看各步骤中的任务操作状态、耗时及前往任务运维界面等操作。
  • 单击云监控页签,前往查看解决方案的实时集成读写指标、CDC 延迟指标信息。您可根据实际场景,自定义时间来查看方案相关的执行指标。

提交执行

未在启动中的任务,您可单击运维操作列的提交执行按钮,将任务提交到运行状态,开启增量流任务的运行。

  1. 方案调整后,第二次提交执行时,在增量流任务位点重置步骤,您可人工确认是否需要重置位点开关,您可输入 Binlog 文件名、 Binlog 位点、gtids 等信息进行位点重置。
  2. 增量流任务启动的执行详情中,单击更多按钮,您可进行前往运维查看执行日志查看 Application Url 等操作。
    图片

方案查看

单击运维操作列更多中的方案查看按钮,可对当前解决方案的各个配置步骤进行查看。

方案编辑

单击运维操作列更多中的方案编辑按钮,可对当前解决方案的方案名称、数据来源端、目标端、DDL 策略配置、运行配置步骤进行修改编辑,如您可在数据来源配置步骤中,为当前解决方案新增同步表或删除已选择的同步表等操作。

方案删除

单击运维操作列更多中的方案删除按钮,将处于非运行中、非启动中的方案进行删除,当前仅删除解决方案本身,已生成的表和集成任务不会被删除。

运行监控

单击运维操作列更多中的运行监控按钮,为当前实时整库同步方案配置一次性全量、实时增量任务的运行监控。
在运行监控界面,单击新增规则按钮,平台自动为您创建一条监控规则,您可在操作列中,单击配置监控按钮,前往运维中心,查看监控详情。更多运行监控配置操作详见离线监控规则实时监控规则

强制重启

单击运维操作列更多中的强制重启按钮,将之前创建的解决方案再次提交执行,区别于提交执行,强制重启会位点初始化、全量批任务清理、重启全量批任务等操作。

提交停止

单击运维操作列更多中的提交停止按钮,可将处于正常运行中的增量流任务进行停止操作。

操作历史

单击运维操作列更多中的操作历史按钮,您可查看当前同步方案的操作历史情况,如创建方案、重启方案、提交停止等操作,均会记录在操作历史中。您可单击操作列中的查看详情按钮,对历史版本的操作进行查看。

6 后续步骤

方案提交完成,任务处于运行中后,您也可以前往运维中心 > 实时任务运维界面,对实时增量任务进行一系列运维操作,如对任务配置监控报警,开启停止任务等操作。运维操作详见实时任务运维