MySQL整库实时同步至LogHub(SLS)

MySQLLogHub(SLS)整库实时同步链路支持将增量数据实时同步至目标端。本文将为您介绍如何创建整库实时同步MySQLLogHub的任务,并在创建完成后查看任务运行情况。

准备环境

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

准备数据库

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

准备DataWorks工作空间

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

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

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

准备资源组

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

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

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

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

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

说明

数据源存在白名单访问控制,您需要将资源组绑定的交换机网段或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数据源。

新建LogHub数据源

  1. 进入数据源页面。

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

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

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

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

    配置项

    配置说明

    开发环境

    生产环境

    数据源名称

    自定义LogHub数据源名称。

    地域

    下拉选择LogHub数据源所在地域。

    LogHub Endpoint

    LogHub数据源服务接入点,参见服务接入点

    Project

    目标日志项目。

    AccessKey ID

    访问阿里云API的唯一标识符。

    AccessKey Secret

    与 AccessKey ID 配对使用的密钥。

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

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

步骤二:创建同步任务

  1. 进入数据集成页面。

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

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

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

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

  3. 配置同步方式。

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

      模块

      配置项

      配置说明

      基本配置

      数据来源与去向

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

      新任务名称

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

      同步类型

      下拉选择整库实时

      同步步骤

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

      网络与资源配置

      资源组

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

      来源数据源

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

      去向数据源

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

      说明

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

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

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

  5. 目标表映射及DML规则配置。

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

    image

    刷新映射后,将自动拉取目标Project下的所有logstore,并配置默认的DML规则。您可以批量修改不同库表的目标logstore以及DML规则配置。

    对于DML事件,您可以在表级别的维度上指定不同的处理规则,插入、更新以及删除事件均支持正常处理和忽略,除此之外,更新和删除事件支持通过表达式对源表数据进行过滤。image

    说明

    上图DML规则配置表示数据字段中的modify_time时间大于30天以前,并且create_time时间小于1小时前的更新操作才会正常处理。

  6. 配置其他项。

    1. 报警配置。

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

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

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

        说明

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

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

    2. 高级参数配置。

      单击界面右上方的高级参数配置,进入高级参数配置页面。在高级参数配置页面基于业务需要与资源组、数据库实际情况配置读端、写端以及运行时配置。

      MySQLLogHub整库实时同步链路提供了是否展开业务数据以及是否透出DDL信息两个写端高级参数。如果您不手动将是否透传DDL信息置为false,我们将默认采集DDL事件。业务数据是否展开会影响数据在目标端的展示形式,您可以按需选择。

      • 业务数据展开:image

      • 业务数据不展开:image

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

      说明

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

  7. 资源组配置。

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

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

步骤三:运维同步任务

启动同步任务

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

image

查看同步任务运行状态

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

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

  • 执行状态:您可以查看任务执行状态:

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

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

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

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

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

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

任务重跑

  • 直接重跑。

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

  • 修改后重跑。

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