全增量实时同步至Hologres

全增量实时同步至Hologres

更新时间:

全增量实时同步方案为您先进行全量数据迁移,然后再实时同步增量数据至目标端。本文为您介绍如何创建全增量实时同步至Hologres任务。

前提条件

  1. 已完成数据源配置。您需要在数据集成同步任务配置前,配置好您需要同步的源端和目标端数据库,以便在同步任务配置过程中,可通过选择数据源名称来控制同步任务的读取和写入数据库。同步任务支持的数据源及其配置详情请参见 支持的数据源及同步方案

    说明

    数据源相关能力介绍详情请参见: 数据源概述

  2. 已完成数据源环境准备。您可以基于您需要进行的同步配置,在同步任务执行前,授予数据源配置的账号在数据库进行相应操作的权限。详情请参见: 数据库环境准备概述

背景信息

说明

全增量实时同步至Hologres为一键实时同步至Hologres的2.0版本,目前还未完全上线,敬请期待。

方案属性

说明

读写表个数

  • 支持将源端多表数据写入至目标端多表。

  • 支持通过自定义目标schema名与表名的方式实现源端多表数据写入至目标端单表。

    说明

    分库分表同步可采用该方案。

任务组成

当前方案将分别创建用于全量数据初始化的离线同步子任务,和用于增量数据实时同步的数据集成实时同步子任务,方案产生的离线同步子任务个数与源端读取的表数量有关。

数据写入

支持写入分区表与非分区表,分为以下三阶段:

  1. 库表结构初始化:从源端数据库拉取库表结构迁移至Hologres。

  2. 全量历史数据同步(可选):将源库中待迁移对象的存量数据,全部迁移到Hologres中。

  3. 实时数据增量同步(可选):持续将源库的增量数据实时同步至Hologres。并且实时同步已支持的源端库DDL消息,例如,源端表增加列时,Hologres对应目标表也会增加相应列。

注意事项

同步数据至Hologres时,目前仅支持将数据写入分区表子表,暂不支持写入数据至分区表父表。

操作流程

步骤一:选择同步方案

在此步骤中,您需要进入数据集成页面配置同步解决方案。

  1. 进入数据集成页面。

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

  2. 在数据集成 同步任务 页任务列表中单击 请创建 ,进入同步方案配置页面。

    • 数据来源与去向:选择待同步的源端数据源类型,目标端数据源选择Hologres。

    • 新任务名称:配置当前方案名称。

    • 同步类型:选择 整库实时

    • 同步步骤:按需选择。

步骤二:网络与资源配置

在此步骤中,选择当前任务需要同步的数据来源数据源与数据去向数据源,以及用于执行同步任务的资源组,并测试连通性。 mysql2holo

说明

您需要在 数据来源 区域根据业务需要定义读取源端数据库所使用的编码格式,及源端数据库读取数据时所使用的时区。

步骤三:选择要同步的表

此步骤中,您可以在 源端库表 区域选择源端数据源下需要同步的表,并单击 图标 图标,将其移动至 已选库表 。同时,支持通过正则表达式过滤库与表。

步骤四:目标表映射

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

说明
  • 您可以选中待同步表后,单击 批量刷新映射 ,未配置映射规则时,默认根据源表所在库和表,写入至与源库同名的Hologres schema;与源表同名的Hologres表,若目标端不存在同名库与表时,将自动新建。

  • 在进行自定义目标schema、表名和表字段等操作时,若在表格中未找到相关信息列,您可以单击表格右上方 自定义列 按钮自定义表格的显示列。

定义目标schema名与表名

  1. 定义目标schema名与表名映射规则。

    需求

    配置入口

    配置

    自定义目标Schema名映射规则

    目标Schema名映射自定义 列,单击 编辑 按钮。

    可以使用内置变量和手动输入的字符串拼接成为最终目标Schema名。其中,支持您编辑内置变量,例如,做字符串替换。 编辑schema规则

    如上图所示,使用 源端数据库名 将源端数据库名作为目标schema名称,并且将所有满足 order_db.* 正则表达式的源库写入目标Hologres名为 order_db 的schema中。

    自定义目标表名映射规则

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

    可以使用内置变量和手动输入的字符串拼接成为最终目标表名。其中,支持您编辑内置变量,例如,做字符串替换。 定义目标表名

    如上图所示,使用 源端表名 将源端表名作为目标表名称,并且将源端表名中符合 t_order.* 正则表达式的表数据写入到Hologres名为 t_order 表中。

  2. 应用目标schema名与表名映射规则。

    选中待同步的所有表,单击 批量修改 > 目标Schema名映射自定义 批量修改 > 目标表名映射自定义 ,并分别选择已创建的规则,使规则生效。

编辑字段类型映射

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

编辑目标表结构并添加字段。

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

  1. 为目标表添加字段。

    • 单表新增字段:单击 目标表名 列的 编辑按钮 按钮添加字段。

    • 批量新增字段:在表格底部选择 批量修改 > 目标表结构_批量修改和新增字段

  2. 为字段赋值。

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

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

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

    说明

    在赋值时支持赋值常量与变量,您可通过 转换按钮 图标切换赋值模式。

配置DML规则

数据集成提供默认DML处理规则,同时,您可以根据业务需要在此界面对写入Hologres的DML命令定义处理规则。

  • 单表定义规则:单击表格列 DML规则配置 > 配置DML ,对目标表单独定义DML规则。

  • 批量定义规则:在列表底部选择 批量修改 > DML规则配置

步骤五:报警配置

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

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

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

    说明

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

  3. 管理报警规则。

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

步骤六:高级参数配置

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

说明

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

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

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

    配置区域

    参数

    说明

    读端配置

    离线任务源端最大连接数

    支持您通过该参数控制当前同步方案所产生的所有离线子同步任务可占用的源端数据库连接数,即同一时间内,当前同步解决方案所产生的所有离线子同步任务读取数据库的并发数上限。

    说明
    • 实际执行时,当前任务同时运行的离线子任务并发度将不会超过此值。

    • 配置 运行时配置 中的 离线同步任务并发数 时请参考该值。

    写端配置

    实时任务写端最大连接数

    支持通过该参数控制当前同步方案所产生的所有实时子任务可占用的写端数据库最大连接数。

    说明
    • 实际执行时,当前任务所产生的实时同步子任务并发度将不会超过此值。

    • 配置 运行时配置 中的 实时任务并发数 时请参考该值。

    离线任务写端最大连接数

    支持通过该参数控制当前同步方案所产生的单个离线同步子任务可占用的写端数据库最大连接数。

    运行时配置

    离线同步任务并发度

    单个离线同步子任务的并发数,建议按照对应规格的资源组支持的最大并发数合理分配。

    说明

    因为离线同步任务个体配置差异较大,实际执行时不一定可以达到此处配置的并发数。收费将按照实际执行的并发数收费。详情请参见: 性能指标

    离线任务是否开启限流

    提供限流功能控制同步流量。

    • 不限流:默认不限流,在不限流的情况下,任务将在所配置的并发数的限制基础上,提供现有硬件环境下最大的传输性能。

    • 限流:考虑到速度过高可能对数据库造成过大的压力从而影响生产,数据集成同时提供了限速选项,您可以通过限流控制同步速率,从而保护读取端数据库,避免抽取速度过大,给数据库造成太大的压力。限速最小配置为1MB/S,最高上限为30MB/s。

    离线任务限流大小

    当开启限流场景下,您可以在此配置单个离线子任务流量大小。

    说明

    流量度量值是数据集成本身的度量值,不代表实际网卡流量。通常,网卡流量往往是通道流量膨胀的1至2倍,实际流量膨胀取决于具体的数据存储系统传输序列化情况。

    实时任务并发度

    单个实时同步子任务并发数。

    是否支持自动创建Schema

    定义当前任务是否允许自动创建Hologres Schema。

步骤七:DDL能力配置

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

步骤八:资源组配置

运行当前同步解决方案将产生多个离线同步子任务和一个实时同步子任务,您可以单击界面右上方的 资源组配置 ,查看并切换当前的任务所使用的离线同步资源组和实时同步资源组。

说明

离线和实时同步任务推荐使用不同的资源组,以便任务分开执行。如果选择同一个资源组,任务混跑会带来资源抢占、运行态互相影响等问题。例如,CPU、内存、网络等互相影响,可能会导致离线任务变慢或实时任务延迟等问题,甚至在资源不足的极端情况下,可能会出现任务被OOM KILLER杀掉等问题。

步骤九:执行同步解决方案任务

  1. 进入 数据集成 > 同步任务 界面,找到已创建的同步方案。

  2. 单击操作列的 启动/提交执行 按钮,启动同步的运行。

  3. 单击操作列的 执行详情 ,查看任务的详细执行过程。

后续步骤

完成任务配置后,您可以对已创建的任务进行管理、执行加减表操作,或对任务配置监控报警,并查看任务运行的关键指标等。详情请参见: 全增量同步任务运维