You need to enable JavaScript to run this app.
导航

MySQL_to_ByteHouse 云数仓版实时整库同步

最近更新时间2024.04.22 18:59:41

首次发布时间2024.04.11 10:47:40

一键实时整库同步方案支持全增量一体化同步,本实践中,先将 MySQL 源端全量数据通过离线任务同步方式迁移,然后再通过实时同步增量任务,将增量数据采集至目标端 ByteHouse 云数仓版(ByteHouse CDW)数据库表中。
您也可以选择单独进行实时增量数据同步,该场景适用于您已经通过其他方式将全量数据同步至 ByteHouse CDW,本文为您介绍如何创建一键实时同步,将全量和增量数据同步至 ByteHouse CDW 数据库中。

1 前置操作

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

2 注意事项

  1. 同步解决方案同时支持选择的表数量目前上限为 1000 张,但建议先以 100 张以下表数量来试用。
  2. 目标端 ByteHouse CDW 库需要提前在集群中先创建好,暂不支持在解决方案中自动创建。创建 ByteHouse 数据库,详见数据库表及视图

3 数据同步解决方案

3.1 数据源配置

3.1.1 MySQL数据源配置(源端)

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

3.1.2 ByteHouse CDW数据源配置(目标端)

在配置实时整库同步解决方案前,您需在数据源管理界面中,配置目标端 ByteHouse CDW数据源。详见 ByteHouse云数仓版 数据源配置

注意

ByteHouse CDW 数据源在配置解决方案时必须配置 API token 信息。

ByteHouse 云数仓版网络配置方式

网络配置方式

操作方式

火山引擎内网

ByteHouse CDW 同时也支持通过 VPC 内网形式访问连接,主账号需进入 ByteHouse CDW 租户管理界面绑定相关网络信息。操作流程如下:

  1. 主账号登录 ByteHouse CDW 控制台
  2. 在上方导航栏中,切换至租户管理界面。
  3. 网络信息 > 私网域名处,单击绑定按钮,并在右侧弹窗中完成绑定私网操作。
  4. 绑定私网时选择的 VPC、子网、安全组等信息,需和独享集成资源组中绑定的网络信息保持一致,以保障与独享集成资源组网络互通
    图片

更多绑定操作,详见设置网络信息

说明

  • ByteHouse CDW 服务中,私有网络仅可绑定一次,绑定后不可修改,需谨慎选择。
  • 若 ByteHouse CDW 服务绑定的私网信息与独享集成资源组网络信息存在不同的 VPC 情况时,您需额外通过云企业网VPN 连接方式,来实现不同 VPC 间的网络互通。

3.2 新建数据实时整库同步

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

  1. 登录 DataSail 控制台

  2. 在左侧导航栏中选择数据同步方案,进入同步方案配置界面。

  3. 单击目录树中项目选择入口,选择已创建的 DataLeap 项目。

  4. 单击右上角新建数据同步解决方案按钮,下拉选择实时整库同步按钮,进入整库实时同步方案配置界面。按照以下配置,完成方案新建。

3.2.1 基本配置

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

配置项

说明

*方案名称

输入整库实时同步方案名称,如 MySQL2BHCDW。只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需在127个字符以内。

方案描述

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

*保存至

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

*链路类型

下拉选择来源和目标端数据源类型,此处来源类型选择 MySQL,目标数据源类型选择 ByteHouse云数仓版。

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

3.2.2 数据来源配置

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

配置项

说明

数据源设置

*数据源

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

*表选择模式

支持通过指定表或正则方式进行表的选择,本文通过指定表模式来实践:

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

说明

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

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

*数据表

在左侧您可选择 MySQL 数据库:

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

说明

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

图片

  1. 此处选择已创建的成功并插入数据的表:mysql_2_bhcdw_cdc

映射规则

*库表匹配策略

选择与来源库表同名的匹配策略:

  • 与来源库表同名:来源库表选择完成后,解决方案默认将目标端的库表名称,与源端库表信息同名。
  • 自定义:您也可通过自定义匹配方式,设置源端与目标库表的匹配策略,配置方式详见“库表映射规则说明”。

说明

目前 ByteHouse 目标端暂不支持自动创建目标数据库,您需先在目标端 ByteHouse CDW 集群中创建目标库。

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

3.2.3 数据缓存配置

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

3.2.4 数据目标设置

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

配置项

说明

数据源设置

*数据源

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

映射配置

高级配置

使用已有表配置

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

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

高级参数配置

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

*刷新源表和目标表映射

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

  • 全量同步:打开全量同步按钮,同步解决方案将创建全量离线任务和实时增量任务,进行历史全量数据和增量数据的同步。
  • 查看字段信息:可以查看来源表 mysql_2_bhcdw_cdc、目标同名表的字段名和其对应的字段类型等信息。

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

3.2.5 DDL 策略配置

MySQL2ByteHouse_CDW 解决方案通道,支持配置 DDL 策略,若您的实际业务场景中会遇到较多来源端新增表、新增列等 DDL 操作场景时,您可配置使用。
不同数据源中不同的 DDL 消息目前可能支持的处理策略不同,整体处理策略如下:

  • 自动处理: 即会在来源端捕获的 DDL 消息,下发给目标数据,由目标数据来自动响应处理,包括自动加表、自动加列、自动变更列类型等。不同目标数据对 DDL 消息处理策略可能不同,平台仅执行转发操作。
  • 忽略变更: 即会丢弃掉此 DDL 消息,不向目标数据源发送此消息,目标端数据源不做任何响应。
  • 日志告警: 即会丢弃掉此 DDL 消息,但会在同步日志中记录 DDL 变更消息详情。
  • 任务出错: 即一旦源端出现 DDL 变更,同步任务将显示出错状态并终止运行。

目前不同 DDL 消息处理策略情况如下:

DDL 消息

自动处理

忽略变更

日志告警

任务出错

新建表

删除表

重命名表

新增列

删除列

重命名列

修改列类型

清空表

注意

  1. 若在数据缓存配置中,您使用 Kafka 缓存的同步方式时,则所有源端的 DDL 消息均只能做忽略变更处理。
  2. 新增列变更消息自动处理策略目前存在以下限制:
    • 源端中主键列不支持自动加列;
    • 目标端自动增加的列,需允许存在 null 值;
    • 如配置列名映射规则,则不再支持自动加列操作。
  3. 修改列类型变更消息自动处理策略目前存在以下限制:
    • 源端中主键列不支持自动修改列类型;
    • 如目标端列已为 string 类型,则不再跟随源端类型变更;
    • 列类型的存储数据范围不支持由大改小,例如目标端列类型已为 bigint 类型,源端即使再次变更为 int,目标端将依然保持为 bigint,否则可能引起字段溢出问题。
  4. 如需对已创建的任务进行 DDL 策略修改,您可在解决方案列表界面,单击运维列中方案编辑 > DDL 策略配置流程,修改 DDL 消息规则。

DDL 策略配置完成后,单击右下角下一步按钮,进行任务运行配置。

3.2.6 运行配置

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

    配置项

    说明

    *离线集成任务资源组

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

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

    *默认 Quota 数

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

    *期望最大并发数

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

    脏数据设置

    您可以在此通过以下两种方式设置脏数据的处理方式:

    • 勾选忽略所有脏数据,任务正常运行,脏数据不写入目标端。
    • 设置脏数据的最大容忍条数或占比情况,如果配置 0,则表示不允许脏数据存在,任务会运行失败退出。

    集成高级参数设置

    打开高级参数输入按钮,根据实际业务要求,以 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. 提交方案
    方案运行配置完成后,单击右下角提交方案按钮,进行方案的提交,在弹窗中,勾选方案立即执行,并单击确定按钮,完成实时数据同步解决方案的创建。

4 执行详情查看

方案创建完成后,进入到方案列表界面,便可查看方案的执行概况。

  1. 单击运维操作列的执行详情按钮,进入解决方案执行详情界面:

  2. 在执行详情界面,等待所有步骤执行完成,您可根据步骤完成情况,查看各个步骤的执行详情:

    1. 您可在“一次性全量批任务启动”步骤执行详情中,查看批式任务的运维与执行日志情况。批式任务运维操作详见离线任务运维

    2. 在“增量流任务启动”步骤详情中,查看增量流式任务的运维、执行日志和 Application Url 等任务详情。

    3. 单击更多 > Application Url 按钮,进入查看增量流式任务的执行详情,您可在该界面中看到实时同步成功数据量、失败数据量、数据量大小等详情。

5 数据验证

一次性全量批任务和增量流任务执行成功后,您可前往 ByteHouse云数仓版目的端数据库中,验证数据的实时接收情况。

  1. 前往 ByteHouse 控制台 ,打开SQL工作表,详见SQL工作表使用说明。

  2. 执行以下语句,查询 对应表数据进行验证

    use dts_test_do_not_delete;
    select * from mysql_2_bhcdw_cdc;
    

6 监控报警配置

数据验证无误后,您可以对已创建的任务进行管理,如同步方案的编辑、重启、暂停、添加任务监控等操作。
DataSail 实时任务报警设置最佳实践