一键实时同步至Hologres方案支持全增量一体化同步,先进行全量数据迁移,然后再实时同步增量数据至目标端。同时,还支持单独进行实时增量数据同步,适用于已经通过其他方式将全量数据同步至Hologres的场景,本文为您介绍如何创建一键实时同步至Hologres任务。

前提条件

  1. 已完成数据源配置。您需要在数据集成同步任务配置前,配置好您需要同步的源端和目标端数据库,以便在同步任务配置过程中,可通过选择数据源名称来控制同步任务的读取和写入数据库。同步解决方案支持的数据源及其配置详情请参见支持的数据源与读写能力
    说明 数据源相关能力介绍详情请参见:数据源概述
  2. 已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组
  3. 已完成数据集成资源组与数据源的网络连通。详情请参见:配置资源组与网络连通
  4. 已完成数据源环境准备。您可以基于您需要进行的同步配置,在同步任务执行前,授予数据源配置的账号在数据库进行相应操作的权限。详情请参见:数据库环境准备概述

背景信息

方案属性说明
读写表个数
  • 支持将源端多表数据写入至目标端多表。
  • 支持通过自定义目标schema名与表名的方式实现源端多表数据写入至目标端单表。
    说明 分库分表同步可采用该方案。分库分表配置可参考最佳实践:MySQL分库分表同步至Hologres(方案1.0)
任务组成当前方案将分别创建用于全量数据初始化的离线同步子任务,和用于增量数据实时同步的数据集成实时同步子任务,方案产生的离线同步子任务个数与最终读取的源端表个数有关。
数据写入任务配置当天,先执行全量数据初始化的离线同步任务,待全量数据执行完成后,会启动实时同步任务将增量数据实时同步至Hologre目标表。
说明 全量数据初始化完成后,该离线同步任务将会被冻结。

注意事项

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

操作流程

  1. 步骤一:选择同步方案
  2. 步骤二:配置网络连通
  3. 步骤三:设置同步来源与规则
  4. 步骤四:设置目标表
  5. 步骤五:设置表粒度同步规则
  6. 步骤六:DDL消息处理规则
  7. 步骤七:设置任务运行资源
  8. 步骤八:执行同步任务

步骤一:选择同步方案

创建同步解决方案任务,根据需求选择需要同步的源端数据源和目标端数据源,并选择一键实时同步至Hologres方案。

步骤二:配置网络连通

源端选择已创建的源端数据源与目标端数据源,以及用于执行同步任务的资源组。并测试资源组与数据源的网络连通。详情请参见:配置同步网络链接

步骤三:设置同步来源与规则

  1. 基本配置区域,配置同步解决方案的名称、任务存放位置等信息。
  2. 数据来源区域,确认需要同步的源端数据源相关信息。
  3. 选择同步的源表区域,选中需要同步的源表,单击图标图标,将其移动至已选源表

    该区域会为您展示所选数据源下所有的表,您可以选择整库全表或部分表进行同步。

  4. 设置表(库)名的映射规则区域,单击添加规则,选择相应的规则进行添加。
    同步时默认将源端数据表写入目的端同名schema或同名表中,同时,您可以通过添加映射规则定义最终写入目的端的schema或表名称,实现将多张表数据写入到同一个目标表中,或统一将源端某固定前缀的表名在写入目标表时更新为其他前缀。支持通过正则表达式转换写入的schema名或表名,还支持使用内置变量拼接目标表名。配置逻辑请参见:设置同步来源与规则

步骤四:设置目标表

  1. 设置写入Hologres策略
    写入Hologres策略目前仅支持重放,重放表示镜像功能,即源端INSERT一条记录,Hologres中也INSERT一条记录;源端执行UPDATE或DELETE操作,Hologres中也进行UPDATE或DELETE。
  2. 刷新源表和Hologres表映射。
    单击刷新源表和Hologres表映射,将根据您在步骤三配置的目标文件映射规则来生成目标表,若步骤三未配置映射规则,将默认写入与源表同名的目标表,若目标端不存在该同名表,将默认新建。同时,您可以修改表建立方式、为目标表在源有表字段基础上增加附加字段。
    功能描述
    为非主键表选择主键由于当前方案不支持无主键表同步,所以您需要单击同步主键列的编辑按钮,为无主键表设置自选主键,即选择表中一个或部分字段作为主键。
    选择表建立方式支持自动建表使用已有表
    • 表建立方式选择使用已有表时,您可以在Hologres表名列对应的下拉列表中选择需要使用的表名称。
    • 表建立方式选择自动建表时,Hologres表名列显示自动创建的Hologres表名称。您可以单击表名称,查看和修改建表语句。
    是否全量同步您可以在全量同步列选择是否需要在实时同步前先将全量数据同步至目标端。

    如果关闭全量同步,则对应的表将不进行离线全量同步。适用于已经通过其他方式将全量数据同步至目标端的场景。

    为目标字段添加附加字段单击操作列的编辑附加字段,可以为目标表在源端字段的基础上增加字段并为字段赋值。支持手动赋值常量与变量。
    说明 仅在表建立方式自动建表时,可以使用此功能。
    数据集成附加字段支持的变量字段如下:
    EXECUTE_TIME:执行时间
    UPDATE_TIME:更新时间
    DB_NAME_SRC:原始数据库名称
    DB_NAME_SRC_TRANSED:转换后数据库名称
    DATASOURCE_NAME_SRC:源端数据源名称
    DATASOURCE_NAME_DEST:目的端数据源名称
    DB_NAME_DEST:目的端数据库名称
    TABLE_NAME_DEST:目的端表名称
    TABLE_NAME_SRC:源端表名称
    编辑目标表结构单击Hologres表名列的表名可编辑目标表结构,例如,为目标表添加PK和Distribution Key,修改字段类型映射等。

    同步至Hologres可能存在字段类型映射,即若目标端数据库中没有与源端一致的数据类型时,同步任务在创建目标表时,将自动根据源端字段为目标端匹配可写入的字段类型。若您需要修改Hologres目标表字段类型映射,您可使用此功能。

    说明 仅在表建立方式自动建表时,可以使用此功能。

步骤五:设置表粒度同步规则

即当源表发生插入、更新、删除时,您可以在此处定义对应的处理策略。
  • 正常处理:源端DML消息将会继续下发给目标数据源,由目标数据源来处理。
  • 忽略:直接丢弃该消息,不再向目标数据源发送对应的DML消息,对应数据不会改变。
  • 有条件的正常处理:选择后,您可以配置过滤条件,同步任务将按照您配置的过滤表达式对源端数据进行过滤,满足过滤条件的数据会被正常处理,不满足的会被忽略掉。
说明 若不设置,则默认为“正常处理”。

步骤六:DDL消息处理规则

来源数据源会包含许多DDL操作,数据集成体提供默认处理策略,您也可以根据业务需求,对不同的DDL消息设置同步至目标端的处理策略。不同DDL消息处理策略请参见:DDL消息处理规则

步骤七:设置任务运行资源

当前方案创建后将分别生成全量数据离线同步子任务和增量数据实时同步子任务。您需要在运行资源设置界面配置离线同步任务和实时同步任务的相关属性。

包括实时增量同步及离线全量同步使用的独享数据集成资源组、离线全量同步使用的调度资源组,同时,单击高级配置可配置是否容忍脏数据、任务最大并发数、源库允许支持的最大连接数等参数。

说明
  • DataWorks的离线同步任务通过调度资源组将其下发到数据集成任务执行资源组上执行,所以离线同步任务除了涉及数据集成任务执行资源组外,还会占用调度资源组资源。如果使用了独享调度资源组,将会产生调度实例费用。您可通过任务下发机制对该机制进行了解。
  • 离线和实时同步任务推荐使用不同的资源组,以便任务分开执行。如果选择同一个资源组,任务混跑会带来资源抢占、运行态互相影响等问题。例如,CPU、内存、网络等互相影响,可能会导致离线任务变慢或实时任务延迟等问题,甚至在资源不足的极端情况下,可能会出现任务被OOM KILLER杀掉等问题。

步骤八:执行同步任务

  1. 进入数据集成 > 同步任务界面,找到已创建的同步方案。
  2. 单击操作列的启动/提交执行按钮,启动同步的运行。
  3. 单击操作列的执行详情,查看任务的详细执行过程。

后续步骤

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