MySQL整库实时同步至SelectDB

通过DataWorks数据集成功能可以将MySQL整库实时同步至SelectDB或Apache Doris中。由于SelectDB是基于Doris内核开发的商业版实时数仓系统,在使用以及同步任务配置上两者无差异,故本文主要以MySQL整库实时同步至SelectDB为例,为您介绍如何将MySQL整库实时同步至SelectDB任务。

准备环境

进行MySQL整库实时同步至SelectDB的数据集成任务时,需要基于Serverless资源组,并确保资源组与需要同步的MySQL数据库与SelectDB数据库连通性正常。建议使用Serverless资源组。

准备数据库

若您已拥有MySQL数据库,以及SelectDB数据库,则可跳过此步骤。

  • 准备MySQL数据库,本案例采用云数据库RDS MySQL数据库。

    1. 登录云数据库RDS管理控制台,切换至目标地域后,单击左侧导航栏内的实例列表,进入云数据库RDS实例列表页面。

    2. 单击创建实例,购买创建RDS MySQL实例。详情请参见快速创建RDS MySQL实例

    3. 新建好RDS MySQL实例后,可在实例中创建测试用数据库和表。详情请参见创建数据库和账号

  • 准备SelectDB数据库,本案例采用云数据库SelectDB版。

    1. 登录云数据库SelectDB版控制台,切换至目标地域后,单击左侧导航栏内的实例列表,进入云数据库SelectDB实例列表页面。

    2. 单击创建实例,购买创建SelectDB实例并在实例内创建数据库。详情请参见创建实例创建数据库并写入数据

准备DataWorks工作空间

若您已拥有DataWorks空间,则可跳过此步骤。

  1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的工作空间,进入工作空间列表页面。

  2. 单击创建工作空间,在弹出的面板内选择生产、开发环境隔离的标准模式空间,详情请参见创建工作空间

准备资源组

在使用DataWorks进行数据同步前,若没有资源组,请新建Serverless资源组,为MySQL整库实时同步至SelectDB提供计算资源以及周期调度资源。若您已创建Serverless资源组,即可跳过准备资源组环节。

  1. 进入资源组列表页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的资源组,进入资源组列表页面。

  2. 资源组列表页面,单击独享资源组页签下的新建资源组,新建Serverless通用型资源组,详情可参见新增和使用Serverless资源组

  3. 资源组创建完成后,回到资源组列表页面,找到已创建好的资源组,单击操作列内的绑定工作空间按钮,将新建的资源组与前提条件中准备的空间进行绑定。

说明

数据源存在白名单访问控制,您需要将资源组绑定的交换机网段、旧版资源组本身EIP或Serverless资源组绑定VPC配置的EIP添加至其白名单中。

  • 通过内网访问:资源组绑定的交换机网段IP添加到数据源的白名单列表。

  • 通过公网访问:将Serverless资源组绑定VPC配置的EIP添加至数据源的白名单列表中。

网络连通详情请参见:网络连通方案

步骤一:新建数据源(可选)

新建MySQL数据源

  1. 进入数据源页面。

    1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心

    2. 进入工作空间管理中心页面后,单击左侧导航栏的数据源 > 数据源列表,进入数据源页面。

  2. 单击左上角新增数据源按钮,在出现的新增数据源弹窗内寻找并单击MySQL数据库,进入新增MySQL数据源页面。

  3. 新增MySQL数据源页面内可按以下内容对MySQL数据源进行配置,未提及配置项保持默认即可。

    说明

    本案例新建MySQL数据源以上海地域当前账号下的RDS MySQL数据库为例,若您的MySQL为其他类型,可参考MySQL数据源

    配置项

    配置内容

    开发环境

    生产环境

    数据源名称

    自定义MySQL数据源名称。

    数据源描述

    自定义MySQL数据源描述。

    配置模式

    阿里云实例模式。

    所属云账号

    当前云账号。

    地域

    填下拉选择MySQL数据库所在地域。

    实例

    根据数据库实例名进行选择。

    数据库名称

    填写MySQL内创建的数据库名。

    用户名

    MySQL数据库账号。

    密码

    MySQL数据库账号密码

    认证选项

    无认证。

  4. 填写完MySQL数据源的配置项后,选中已与DataWorks空间关联的资源组,单击测试资源组连通性,测试数据库与Serverless资源组之间的连通性,网络配置详情可参见:网络连通方案

  5. 连通性测试通过后,单击完成创建,创建MySQL数据源。

新建SelectDB数据源

  1. 进入数据源页面。

    1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心

    2. 进入工作空间管理中心页面后,单击左侧导航栏的数据源 > 数据源列表,进入数据源页面。

  2. 单击左上角新增数据源按钮,在出现的新增数据源弹窗内寻找并单击SelectDB,进入创建SelectDB数据源页面。

  3. 创建SelectDB数据源页面内可按以下内容对SelectDB数据源进行配置,未提及配置项保持默认即可。

    配置项

    配置说明

    开发环境

    生产环境

    数据源名称

    自定义数据源名称

    主机地址/IP

    可使用公网或VPC地址。

    端口

    9030

    数据库名称

    前提条件中的SelectDB的数据库名称。

    HTTP连接地址

    ${公网或VPC地址}:8080

    用户名

    admin

    密码

    自行配置的密码。

  4. 填写完成数据源的配置项后,选中已与DataWorks空间关联的资源组,单击测试数据源连通性,测试数据库与Serverless资源组之间的连通性,网络配置详情可参见:网络连通方案

  5. 连通性测试通过后,单击完成创建,创建SelectDB数据源。

步骤二:创建同步任务

  1. 进入数据集成页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据集成,在下拉框中选择对应工作空间后单击进入数据集成

  2. 配置来源与去向数据源。

    1. 在数据集成页面上方创建同步任务时,来源侧下拉选择MySQL数据源,去向侧下拉选择SelectDB数据源

    2. 选择好数据源后,单击开始创建,进入数据集成任务的配置页面。

  3. 配置同步方式。

    1. 在新建同步任务页面,可重新对数据来源与去向进行调整,需要在基本配置与网络资源配置中分别配置以下内容:

      模块

      配置项

      配置说明

      基本配置

      数据来源与去向

      可对第二步配置的数据来源与去向重新配置,在本案例中保持不变即可。

      新任务名称

      系统默认对MySQL整库实时同步至SelectDB集成任务进行自动命名,可手动修改。

      同步类型

      下拉选择整库实时

      同步步骤

      在同步类型选择整库实时后,会出现对同步步骤的选择,默认包含:

      • 结构迁移

      • 全量同步

      • 增量同步

      本案例保持默认。

      网络与资源配置

      数据来源

      选择在新建数据源阶段新建的MySQL数据源

      同步资源组

      选择准备资源组阶段准备的Serverless通用型资源组。

      数据去向

      选择在新建数据源阶段新建的SelectDB数据源

      说明

      配置完成后,单击测试连通性系统会检测数据来源数据源与数据去向数据源和同步资源组之间的连通性。

    2. 配置完成基本配置、网络与资源配置后单击下一步进入下一个阶段。

  4. 根据库与表的过滤通过直接搜索库或表名或正则的方式,在源端库表模块过滤筛选出想要数据库与数据表,单击image按钮,将数据库与表加载至已选库表模块。image

  5. 目标表映射。

    在上一步骤选择完需要同步的表后,将自动在此界面展示当前待同步的表,但目标表的相关属性默认为待映射状态,需要您定义并确认源表与目标表映射关系,即数据的读取与写入关系,然后单击刷新映射后才可进入下一步操作。您可以直接刷新映射,或自定义目标表规则后,再刷新映射。

    image

    说明
    • 您可以选中待同步表后,单击批量刷新映射,未配置映射规则时,默认表名规则为${源端库名}_${表名},若目标端不存在同名表时,将自动新建。

    • 自定义目标表名规则,在目标表名映射自定义列,单击编辑按钮。

      可以使用内置变量和手动输入的字符串拼接成为最终目标表名。其中,支持您编辑内置变量,例如,新建一个表名规则,将源表名增加后缀作为目标表名。

    • 同步至SelectDB需要指定目标表的主键,默认会使用和源端表一致的主键,需确保源表包含主键。目标表的主键是用于同步写入时做数据去重所使用,请根据自己的业务需求在建表时合理设置。

    1. 编辑字段类型映射。

      同步任务存在默认的源端字段类型与目标端字段类型映射,您可以单击表格右上角的编辑字段类型映射,自定义源端表与目标端表字段类型映射关系,配置完后单击应用并刷新映射

      image

    2. 编辑目标表结构并添加字段赋值。

      当目标SelectDB表为待建立状态时,您可以在原有表结构基础上为目标表新增字段。操作如下:

      1. 为目标表添加字段。

        • 单表新增字段:单击目标表名列的image.png按钮添加字段。

        • 批量新增字段:选中待同步的所有表,在表格底部选择批量修改 > 目标表结构-批量修改和新增字段

      2. 为字段赋值。您可以通过以下操作为上述步骤中新增的字段赋值。

        • 单表赋值:单击目标表字段赋值列的配置按钮,为目标表字段赋值。

        • 批量赋值:在列表底部选择批量修改 > 目标表字段赋值为目标表中相同的字段批量赋值。

        说明

        在赋值时支持赋值常量与变量,您可通过image.png图标切换赋值模式。

  6. 配置其他项。

    1. 报警配置。

      为避免任务出错导致业务数据同步延迟,您可以对实时同步子任务设置不同的报警策略。

      1. 单击页面右上方的报警配置,进入实时同步子任务报警设置页面。

      2. 单击新增报警,配置报警规则。

        说明

        此处定义的报警规则,将对该任务产生的实时同步子任务生效,您可在任务配置完成后,进入实时同步任务运行与管理界面查看并修改该实时同步子任务的监控报警规则。

      3. 管理报警规则。对于已创建的报警规则,您可以通过报警开关控制报警规则是否开启,同时,您可以根据报警级别将报警发送给不同的人员。

    2. 高级参数配置。

      数据集成提供数据库最大连接数,并发度等配置的默认值,如果需要对任务做精细化配置,达到自定义同步需求,您可对参数值进行修改,例如通过最大连接数上限限制,避免当前同步方案对数据库造成过大的压力从而影响生产。

      说明

      请在完全了解对应参数含义的情况下再进行修改,以免产生不可预料的错误或者数据质量问题。

      1. 单击界面右上方的高级参数配置,进入高级参数配置页面。

      2. 高级参数配置页面基于业务需要与资源组、数据库实际情况配置读端配置

        源端最大连接数:通过该参数,您可以控制当前同步方案所能使用的源端数据库连接数,即同一时间内,当前同步解决方案任务读取数据库的并发数上限。

    3. DDL能力配置。

      来源数据源会包含许多DDL操作,您可以根据业务需求,在界面右上方单击DDL能力配置,进入DDL能力配置页面,对不同的DDL消息设置同步至目标端的处理策略。

      说明

      不同DDL消息处理策略请参见:DDL消息处理规则

    4. 资源组配置。

      您可以单击界面右上方的资源组配置,查看并切换当前的任务所使用的资源组。

  7. 完成以上配置后,可单击完成配置,完成数据集成的同步任务配置。

步骤三:运维同步任务

启动同步任务

完成配置之后,界面会自动跳转到任务列表,您可以单击对应任务的启动按钮,启动同步任务。

image

查看同步任务运行状态

创建完成同步任务后,您可以在同步任务页面,找到已创建的同步任务,单击任务名称,查看任务的运行详情。任务详情分为以下三个部分:

  • 基本信息:您可以看到同步任务的数据源信息、绑定的资源组以及同步方案等信息。

  • 执行状态:任务的执行状态为结构迁移全量初始化以及实时数据同步三个步骤,您可以查看任务执行状态,以下为执行状态的详细信息:

    • 结构迁移:包含目标表的创建方式(已有表或自动建表),如果是自动建表,将会为您展示建表的DDL。

    • 全量初始化:包含对来源表与目标表数据的全量进度已写入数据条数全量启动时间全量完成时间的展示。

    • 实时同步:包含实时同步的统计信息,包含实时的集成进度DDL记录DML记录报警信息的展示。

  • 运行日志:数据同步采取了主从架构(master-worker架构),其中包含了MasterWorker,一个同步解决方案任务对应一个master和一个或多个worker,您可以到对应日志中查看相关步骤的详细信息。

    • Master:任务初始化、数据分片、worker的协调。

    • Worker:具体数据分片的读写、转换。

  • Failover:包含了数据同任务中出现的Failover事件的详细时间与报错信息,您可以查看同步任务在最近一次启动以来的异常恢复记录。

  • 资源利用率:对数据集成任务占用的资源状况进行监控及查看,可以根据实际使用率对资源占用做调整。

任务重跑

  • 直接重跑。

    不修改任务配置,直接单击同步任务操作列的更多>重跑,重新运行一次从结构迁移到启动实时同步的流程。

  • 修改后重跑。

    编辑任务,进行修改操作后,单击完成。这个时候任务的操作会变成应用更新,点击应用更新会直接触发修改后的任务重跑,实时同步任务会按照新的配置运行。