You need to enable JavaScript to run this app.
导航
实时整库同步(新版)
最近更新时间:2024.11.21 11:12:03首次发布时间:2024.08.16 11:17:49

一键实时整库同步解决方案支持多种数据源之间,进行数据的全增量一体化同步,方案中先将源端全量数据通过离线任务方式同步迁移,然后再通过实时同步增量任务,将数据采集至目标端数据源中。
您也可以单独选择进行实时增量数据同步,该场景适用于您已经通过其他方式将全量数据同步至目标端数据源库表中。您可根据实际场景,进行同步方案选择配置,助力您将业务数据更高效、更便捷的同步至目标数据库中。
本文将为您介绍如何创建实时整库同步解决方案,将源端 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. 已完成来源和目标端的数据源准备,创建数据源操作详见配置数据源
  5. 通过 Oracle CDC 数据源,配置实时整库同步、实时分库分表同步解决方案,使用基于 LogMiner 的日志进行采集时需进行一些前置配置操作。具体详见Oracle CDC 数据源 LogMiner 配置文档

3 注意事项

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

4 数据源配置

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

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

5 新建数据实时整库同步

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

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

进入配置界面后,您可按实际场景需求,完成方案的基本配置、数据缓存配置、映射配置等流程配置。

6 方案基本配置

解决方案基本配置步骤参数说明如下。

6.1 基本信息

在基本信息中,配置解决方案的名称、链路类型及保存路径位置。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

*链路类型

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

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

*方案名称

输入整库实时同步方案名称。只允许字母、数字、下划线、连字符,且仅允许输入 1~63 个字符。

说明

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

  • 流任务名称:方案名称_解决方案 ID;
  • 批任务名称:解决方案名称_解决方案 ID_唯一标识UUID(12位)。

方案描述

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

*保存至

单击选择框,在弹窗中选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理

6.2 网络与资源配置

在网络与资源配置中,配置数据来源/目标端数据源信息、集成资源组信息。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

*数据来源

下拉选择数据源管理中创建成功的数据源。
若此前仍未创建相应数据源或需修改数据配置:
Image

  • 您可单击下方新建数据源按钮,在右侧弹窗的数据源管理界面,进行数据源的创建。
  • 也可在对应数据源名称后,单击编辑按钮,进行数据源配置编辑操作。

数据缓存

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

  • 勾选使用缓存时,流程中会新增数据缓存配置流程,缓存说明详见“7 数据缓存配置”。

    说明

    • DataSail(内置 Topic) 、BMQ 数据源缓存方式,目前仅支持 MySQL2Doris、MySQL2StarRocks、MySQL2Elasticsearch 通道进行该缓存方式配置。
    • 源端为 GaussDB 数据类型时,必须通过数据缓存方式进行配置,暂不支持直连模式。
  • 不勾选,不使用缓存,通过直连数据库的方式采集源端数据。
    如 MySQL 源端,将直接采集 MySQL Binlog 日志,进行数据实时读取,您需保障数据库已开启 Binlog 协议,且数据源配置信息内的用户名,需要有 Binlog 的 REPLICATION 操作权限。权限详见配置 MySQL 数据源

*数据目标

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

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

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

  • 选择的资源组,需要确保能与源端、中间缓存数据源、目标端数据源连通,您可单击下方的测试连通性按钮,测试选择的资源组是否可以和各数据源连通成功。
    您可以将鼠标移动至测试连通性按钮上方,单击查看详情,可查看各数据源的连通性详情与测试结果信息。
    Image
  • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

6.3 资源组高级配置

您可在资源组高级配置中,配置离线全量同步、实时增量同步、任务调度等运行配置信息。

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

    配置项

    说明

    *离线集成任务资源组

    默认选择在网络与资源配置中选择好的独享数据集成资源组。您也可下拉选择已在 DataLeap 项目控制台中绑定的其他独享数据集成资源组。

    说明

    • 选择的资源组,需要确保能与源端、目标端数据源连通。
    • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

    *默认 Quota 数

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

    说明

    您也可按需勾选“每次提交执行时不询问”选项,建议您勾选。
    若不勾选,方案每次提交执行时,在执行详情 > 任务 Quota 检测步骤中,需要人工进行 Quota 数确认。
    Image

    *期望最大并发数

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

    集成高级参数设置

    打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入离线任务所需的高级参数。
    可参考下方任务通用高级参数表,更多参数详见高级参数-任务运行参数高级参数-资源使用参数

    • 任务通用高级参数表:

      参数名称

      默认值

      说明

      job.common.is_use_batch_mode

      true

      是否 batch 模式:

      • true: flink 任务 batch 模式,在资源有限情况,部分 taskmanager 也可运行任务;
      • false:flink 任务 pipeline 模式,适用数据量大时,读写同时进行。

      job.reader.reader_parallelism_num

      无默认值,系统根据数据量大小自动推算并发数。

      设置连接器的读并发数。

      job.writer.writer_parallelism_num

      无默认值,系统根据数据量大小自动推算并发数。

      设置连接器的写并发数。

      job.writer.bh_connection_properties

      Map<String,String> 类型。
      目标源为 ByteHouse CE、ByteHouse CDW 数据源时,可自定义设置 ByteHouse query 参数,设置到 jdbc 连接的 properties 中,如 job.writer.bh_connection_properties={"query_timeout":63}

      job.writer.session_properties

      Map<String,String> 类型。
      目标源为 ByteHouse CE、ByteHouse CDW 数据源时,可自定义设置 ByteHouse session 参数,通过在当前 session 中执行 set key=value 的语句来实现,如 job.writer.session_properties={"max_threads":8}

  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 运行参数表,更多具体参数设置详见 Flink 官方文档

    • 集成高级参数表:

      参数名称

      默认值

      说明

      job.reader.poll_interval_ms

      500

      设置读 binlog 的刷新时间,默认 500 毫秒。
      设置场景:调小此参数,提高实时性。

      job.reader.debezium

      -

      • 忽略特殊不能解析的 ddl:
        "database.history.skip.unparseable.ddl": "true"

      • binlog 忽略 sql 操作配置:
        "skipped.operations":"d"
        取值这几个: d,c,u

        • c for inserts/create,
        • u for updates,
        • d for deletes,
        • t for truncates,
        • none to not skip any operations.

        默认 : truncate operations are skipped.
        配置示例:{"database.history.skip.unparseable.ddl":"true","skipped.operations":"d,u"}
        更多说明可参考官网:https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-skipped-operations

      job.common.checkpoint_interval

      900000

      设定 Checkpoint 刷新时间。

    • Flink 运行参数表:

      参数名称

      默认值

      说明

      taskmanager.memory.managed.size

      -

      每个 Task Manager 的托管内存占总内存大小。
      推荐配置:200m (实时任务使用较少)

      taskmanager.memory.network.fraction

      -

      每个 Task Manager 的网络内存的占比。
      推荐配置:0.05 (实时任务使用较少)

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

资源组高级配置完成后,单击配置窗口右上角关闭按钮,退出配置窗口,并检查基本配置所有参数无误后,单击右下角下一步按钮,进行方案的数据缓存配置。

7 数据缓存配置

基本配置 - 网络与资源配置中选择使用缓存时,需进行该配置。
通过使用中间缓存来采集源端数据,来源数据源需要绑定对应的 CDC 采集数据进入的 MQ。若还未创建采集方案,您需到解决方案-实时数据采集界面,进行方案创建。详见实时数据采集方案

说明

  • 使用缓存可对同步任务进行缓冲,在性能和稳定性上有所提升,适合对稳定性要求高以及数据量大的场景,但需额外增加缓存数据源及相应成本,请按需配置。
  • Kafka、BMQ 数据源类型,也可通过创建相应的 CDC 数据订阅采集任务,将源端 MySQL 中的数据,通过数据库传输服务中数据订阅方式,实时采集到 Kafka 实例中。在数据来源配置时绑定对应的 CDC 采集数据进入的 Kafka。数据订阅操作详见数据库传输服务
  1. 数据源选择:根据实际情况,按需选择数据源类型及对应的数据源名称,数据缓存方式需要额外配置 Kafka 数据源DataSail(内置 Topic) 数据源BMQ 数据源

    注意

    • DataSail(内置 Topic) 、BMQ 数据源缓存方式,目前仅支持 MySQL2Doris、MySQL2StarRocks、MySQL2Elasticsearch 通道进行该缓存方式配置。
    • 源端为 GaussDB 数据类型时,必须通过 Kafka 数据缓存方式进行配置,暂不支持直连模式。
  2. 订阅格式:需根据不同缓存数据源类型中的数据格式进行选择
    • Kafka 数据源:支持选择火山 MySQL PROTODebezium Json、DRS Json 三种格式,不同源端数据源类型,支持的格式不同;
    • DataSail(内置 Topic) 数据源:仅支持选择 Debezium Json 格式;
    • BMQ 数据源:仅支持选择 Debezium Json 格式。
  3. 映射配置:
    数据源类型选择完成后,单击刷新数据源和Topic映射按钮,根据数据源类型,进行相关的映射配置。您可在下拉框中,选择已创建的来源、目标端数据源、Topic 名称和绑定解决方案信息。

    说明

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

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

确认数据缓存同步方式配置完成后,单击右下角下一步按钮,进入映射设置。

8 映射配置

在映射配置界面中,您需完成数据来源库表与库表映射规则匹配策略:

8.1 数据源配置

进行来源库表的选择,其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项

说明

*数据源

默认展示在网络与资源配置中选择的数据来源名称。

  • 您也可单击下方新建数据源按钮,在右侧弹窗的数据源管理界面,进行数据源的创建。
  • 也可在对应数据源名称后,单击编辑按钮,进行数据源配置编辑操作。

*表选择模式

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

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

    注意

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

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

指定表模式

*数据表

指定表模式选择时,在左侧您可选择来源数据库表信息,以整库,或单表多表形式展开进行勾选需要同步的库表,取消勾选便可撤回已选中的库表。

说明

  1. 数据库下没有表存在时,不支持勾选同步。
  2. 单次同时支持选择的表数量上限为 2000 张。
  3. 源端为 MySQL 时,通过 Like 形式创建的表,暂时不支持同步,无法获取其 Schema 信息。

正则模式

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

正则模式选择时,您可通过设置源库、源 Schema、源表的限定条件,来获取源表信息。
Image

  • 单击添加规则按钮,完成限定条件规则的添加,数据库、Schema、源表条件支持添加多个规则,取合集;
    • 限定条件:您可通过指定源库、源表的名称来限定,也可通过正则表达式匹配的方式,快速获取源端库表信息。
    • 类型:依据限定条件中输入的条件,下拉选择匹配的类型,支持正则个例类型配置。
  • 源库、源表限定条件,可支持批量输入,单击批量输入按钮,在弹窗中输入限定条件表达式,示例如下:
    [ {"filterPattern":".*", "filterType":"FULL", "filterAction":"INCLUDE" } ]
    • filterType 可选:个例-FULL、正则-REG
    • filterAction 可选:INCLUDE

    注意

    当前批量输入的内容将会全量替换已手动添加的规则,请谨慎操作!

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

表/集合

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

注意

  • 选择的多个库表,需保证其 Schema 信息一致(包括字段名称、字段类型)。
  • 数据字段模块内系统默认展示第一个数据源中第一张表的元数据字段信息,若多表间字段不一致可能会导致运行失败。
  • 若上方正则限定条件配置修改后,您需再次单击获取源表按钮,来刷新正则所匹配的表/集合数量。

8.2 数据转换配置

DataSail 实时/离线整库同步、实时分库分表同步解决方案,支持添加自定义 SQL 转换规则。它支持将源端采集的数据,对其进行各种数据转换操作,以满足各类业务场景需求。
数据转换可以应用于各种轻量级数据处理场景,例如:

  • 字段拆分、合并、重排序:可以灵活使用 SELECT 语句,对源表的字段做拆分、合并、顺序调整。
  • 清洗过滤:可以使用 WHERE 条件语句,过滤冗余数据、处理缺失值、纠正数据错误等。
  • 预处理:可以使用条件函数,对数据(例如 null 值)进行标准化等预处理。
  • 格式转换:可以使用转换函数、加解密函数,将数据从一种格式转换为另一种格式。

Image
单击配置详情按钮,展开数据转换配置界面。在数据转换配置界面,您可进行以下配置操作:

  1. 语法检查:
    • 编辑行:在编辑行中输入 SQL 脚本转换规则语句,来实现数据转换,具体数据转换配置及注意事项,详见解决方案数据转换配置指南
    • 增加/删除行:解决方案中有多个目标表,需要多条数据转换语句时,可进行增加或删除行操作。
    • 调整语句顺序:当存在多条转换规则 SQL 时,您可通过上移或下移语句按钮,进行语句顺序调整。
  2. 函数库:
    数据转换 SQL 语句中支持多种函数语法,具体函数说明详见数据转换函数库
  3. 高级参数
    您可为同步解决方案配置多表映射高级参数,以key-value的形式输入。如指定表的主键字段信息等:primary_keys=new_id。

8.3 目标库表映射配置

来源库表选择完成后,您便可进行后续的映射规则配置。

  1. 高级配置
    展开高级配置按钮,进行解决方案 DML、使用已有表、高级参数等相关配置,其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项

    说明

    DML 配置

    解决方案执行过程中,支持同步 DML 事件类型,支持插入、更新、删除事件类型。

    说明

    • 若取消勾选 DML 事件类型,则源端进行相应操作时,解决方案将不同步对应操作类型的数据;
    • 若在任务高级参数中配置了 DML 相关语句过滤,则以高级参数中的配置为准,此处勾选不生效。
    • GaussDB 数据源读取类型时,暂不支持 DML 配置。

    使用已有表配置

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

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

    源表和目标刷新配置

    整库离线方案配置的源表和目标表数量较多时,您可设置单次拉取表数量,来分批进行表映射配置,默认单次拉取数量为 100 张表,您可根据实际情况进行调整,填写范围 1~2000。

    高级参数配置

    您可为同步解决方案配置全局的高级参数,以 key-value 的形式输入。如您可通过设置参数:storage_dialect_type=MYSQL,来设定 ByteHouse CDW 表为 MySQL 属性表。

  2. 库/表名映射配置
    单击库/表名映射配置按钮,在弹窗中配置库表匹配策略,支持选择与来源库表同名和自定义方式匹配:

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

      注意

      • 目前暂不支持自动创建同名数据库,您需先在目标端,如 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');
        
    • 自定义:您也可通过自定义匹配方式,设置源端与目标库表的匹配策略,配置方式详见“9 库表映射规则说明”。
      映射规则配置完成后,单击弹窗右上角关闭按钮,即规则映射配置完成。
  3. DDL 配置
    在实时整库 CDC、分库分表、离线整库解决方案中,通常会遇到较多来源端新增表、新增列等 DDL 操作场景。此时您可根据实际业务场景,对来源端不同的 DDL 消息,在配置解决方案同步到目标端数据源时,可进行预设不同的处理策略。

    1. 单击 DDL 配置按钮,在弹窗中进行消息处理策略配置;
    2. 按需进行新建表、新增列、删除列、重命名列、修改列类型等处理策略选择;
    3. DDL 策略配置完成后,单击弹窗右上角关闭按钮,DDL 配置即完成。
      DDL 消息处理策略说明详见解决方案 DDL 策略配置
  4. 刷新源表和目标表映射
    库/表映射配置、DDL 等配置完成后,您可单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作:

    说明

    对于历史方案,操作方案编辑,如在原有方案中进行新增表、删除表操作时,单击刷新源表和目标表映射按钮,会弹窗表选择范围,您可按需选择刷新全量表映射仅刷新新增表映射按钮进行表映射刷新。
    Image
    在方案编辑过程中,若同时对库/表名映射、DDL 配置、DML 配置、使用已有表配置、高级参数配置、数据源等所有涉及表内容的修改时,系统将默认会刷新全量表映射,且不会弹出选择窗口。

    操作项

    说明

    筛选库表

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

    同步主键

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

    排序策略

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

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

    排序字段

    目标端为 ByteHouse CDW/CE 时,在源端已有的字段中,下拉选择排序字段信息,最多选择 5 个排序字段。

    表建立方式

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

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

      注意

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

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

    分区字段

    目标为 StarRocks 3.X 版本、ByteHouse CDW、ByteHouse CE 的数据源类型,可为目标表设置分区字段信息。
    支持选择无分区、字段分区、分区表达式三种分区字段类型:

    • 无分区:
      目标表不创建分区;
    • 分区表达式:
      可通过输入分区表达式,如时间分区表达式 ${date} 形式进行设置。更多时间表达式详见平台时间变量与常量说明
    • 字段分区:
      即支持根据源表字段中的数据进行动态分区设置,支持选取或输入关键词搜索表中的字段作为分区,支持多选。
      ByteHouse CDW 目标数据源类型选择的分区字段类型为 DateTime、DateTime64、Date、Time 类型时,您可单击编辑按钮,进一步选择时间粒度,如 MONTH、DAY、HOUR 粒度。其中
      • Date 类型的支持选择 MONTH、DAY 粒度;
      • DateTime、DateTime64 类型的支持选择 MONTH、DAY、HOUR 粒度,默认选取首个选项,即 DAY;
      • Time 类型较特殊,只支持选择 HOUR 分区粒度。
        Image

    注意

    • 目标为 StarRocks 数据源类型时:
      • StarRocks 3.X 版本支持动态分区形式写入分区表,使用已有表时,需源端分区字段做映射后,方可写入 StarRocks 分区字段中;使用自动建表时,可按需选择上述无分区字段分区、分区表达式形式。
      • 2.X StarRocks 版本不支持写入分区。
        StarRocks 分区设置详见 StarRocks 表达式分区
    • 目标为 ByteHouse CDW、ByteHouse CE 数据源类型时,仅支持选择无分区字段分区类型。
    • 在上方高级配置 > 高级参数配置中,添加 solution.writer.common.ddl.partition.keys=column{granularity=day}高级参数,即可实现为多个表的同一个字段,批量配置字段分区时间粒度,其中column可替换为表实际字段名,day可替换为实际时间粒度。
    • 分区字段数量最多支持 5 个。

    全量同步

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

    清表策略

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

    查看字段信息

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

    配置

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

    移除

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

    重置

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

    批量操作

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

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

9 实时整库方案运维

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

9.1 解决方案筛选

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

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

9.2 解决方案运维

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

说明

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

运维操作

说明

执行详情

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

提交执行

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

  1. 方案调整后,第二次提交执行时,在增量流任务位点重置步骤,您需人工确认是否需要重置位点开关,您可输入 Binlog 文件名、 Binlog 位点、gtids 等信息进行位点重置。
  2. 若在资源组高级配置中,没有勾选“每次提交执行时不询问”选项,则需人工进行 Quota 数确认。
  3. 增量流任务启动的执行详情中,单击更多按钮,您可进行前往运维查看操作日志查看 Application Url 等操作。
    Image

方案查看

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

方案编辑

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

方案删除

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

运行监控

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

强制重启

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

提交停止

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

操作历史

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

10 后续步骤

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