完成数据源、网络、资源的准备工作配置后,您可以创建并执行同步任务。本文为您介绍如何创建一键实时数据同步任务,并在创建完成后查看任务运行情况。

前提条件

创建数据同步任务前,需检查已完成以下准备操作。
  • 已配置数据源。

    数据同步基于数据源控制读写端数据库,您需要在数据集成同步任务配置前,配置好您需要同步的源端和目标端数据库或数据仓库的相关信息,以便在同步过程中,可通过选择数据源名称来控制同步读取和写入的数据库或数据仓库,数据源配置,详情请参见数据源概述

  • 已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组
  • 独享数据集成资源组与数据源网络已打通。详情请参见:配置资源组与网络连通
  • 已配置数据库环境.

    在同步前,请确保数据库相关配置已开启,例如已开启binlog服务,已授予数据源配置账号操作数据库权限等,数据库相关的环境准备,详情请参见数据库环境准备概述

注意事项

本方案每天会生成一个全量分区,为避免数据过多占用存储资源,本方案任务自动建立的MaxCompute表,默认生命周期为30天。

如果时长不满足您的业务需求,可以在配置任务时单击对应的MaxCompute表名修改生命周期。

使用限制

仅支持与当前工作空间同地域的自建MaxCompute数据源,跨地域的MaxCompute项目在测试数据源服务连通性时可以正常连通,但同步任务执行时,在MaxCompute建表阶段会报引擎不存在的错误。
说明 使用自建MaxCompute数据源时,DataWorks项目仍然需要绑定MaxCompute引擎,否则将无法创建MaxCompute SQL节点,导致全量同步标done节点创建失败。

计费说明

一键实时同步至MaxCompute解决方案需要定期做全增量数据周期合并,因此会消耗MaxCompute计算资源。这部分费用由MaxCompute直接收取,费用与用户同步全量数据大小、合并周期正相关。具体费用请参考计费项与计费方式概述

创建同步解决方案任务

  1. 进入同步解决方案页面后,根据待同步的来源数据源和去向数据源(本场景去向数据源为MaxCompute),选择同步解决方案(本场景为一键实时同步至MaxCompute方案)。
    操作详情请参见选择同步方案一键实时同步
  2. 设置同步来源和规则。
    1. 基本配置区域,配置同步解决方案的名称、任务存放位置等信息。
    2. 数据来源区域,确认需要同步的源端数据源相关信息。
    3. 选择同步的源表区域,选中需要同步的源表,单击图标图标,将其移动至已选源表
      该区域会为您展示所选数据源下所有的表,您可以选择整库全表或部分表进行同步。
      注意 如果选中的表没有主键,将无法进行实时同步。
    4. 设置表(库)名的映射规则区域,单击添加规则,选择相应的规则进行添加。
      同步时默认将源端数据库、数据表写入Hologres同名schema或同名表中,如果目标端不存在该schema或表,将会自动创建。同时,您可以通过添加映射规则定义最终写入Hologres的schema名称及表名称。映射规则包括源表名和目标表名转换规则源表名和目标Schema名转换规则目标表名规则
      • 源表名和目标表名转换规则:源端表名支持通过正则表达式转换为目标端最终写入的表名。
        • 示例1:将源端doc_前缀的表数据,写入前缀为pre_的目标表中。改名
        • 示例2:将多张表数据写入到一张目标表。
          将源端名称为 "table_01","table_02","table_03" 的表同步至一张名为 "my_table" 的表中。配置正则表名转换规则为::table.*,目标:my_table。示例
      • 目标表名规则:支持您使用内置的变量组合生成目标表名,同时,对转换后的目标表名支持添加前缀和后缀。可使用的内置变量有:
        • ${db_table_name_src_transed}:“源表名和目标表名转换规则”中的转换完成之后的表名。
        • ${db_name_src_transed}:“源库名和目标Schema名转换规则”中的转换完成之后的目标Schema名。
        • ${ds_name_src}:源数据源名。

        示例:对上一步源表名和目标表名转换规则转换后的表名做进一步字符串拼接处理,使用${db_table_name_src_transed}代表上一步的处理结果“my_table”,再为该内置变量增加前缀和后缀,例如,pre_${db_table_name_src_transed}_post,最终就映射到了名为“pre_my_table_post”的目标表。

      • 源库名和目标Schema名转换规则:源端schema名支持通过正则表达式转换为目标端最终写入的schema名。
        示例:将源端doc_前缀的库名替换为pre_前缀。schema
  3. 选择目标数据源并配置目标表格式。
    1. 设置目标表页面,选择目标MaxCompute(ODPS)数据源写入模式
    2. 单击MaxCompute(ODPS)时间自动分区设置后的编辑图标,在编辑对话框中,修改目标MaxCompute分区的设置(支持天级别分区)。此处可以选择写入MaxCompute分区表或者是非分区表。
    3. (可选)特殊表进行离线同步:是否将无主键表设置为全量离线数据同步任务。
    4. 单击刷新源表和MaxCompute(ODPS)表映射,创建需要同步的源表和目标MaxCompute表的映射关系。
    5. 查看任务的执行进度和表来源。
      源表与odps表映射
      序号 描述
      显示映射关系的创建进度。
      说明 如果同步的表数量较多,会导致执行进度较慢,请耐心等待。
      表建立方式包括自动建表使用已有表
      选择的表建立方式不同,此处显示的MaxCompute表名也不同:
      • 当选择表建立方式自动建表时,显示自动创建的MaxCompute表名称。您可以单击表名称,查看和修改建表语句。
      • 当选择表建立方式使用已有表时,请在下拉列表中选择需要的表。
      说明 如果源表为无主键表,您可以无主键字样后的编辑入口,为源表手动指定主键,以便后续进行增全量同步。
      支持您通过编辑附加字段为目标MaxCompute表在源表字段基础上增加写入的目标MaxCompute表字段。
      说明 如果您初次使用自动建表方式时选择了附加字段,系统在自动建表时会加上对应列。如果您在已有表上增加附加字段,需要保证已有表中已经存在对应的列名,系统才会往对应列里写值,否则不会修改已有表的表结构去追加列。
    6. 单击下一步
  4. 运行资源设置。
    运行资源设置页面,配置各项参数。运行资源
    参数 描述
    同步引擎 支持默认内嵌引擎
    选择实时任务独享资源组 从下拉列表中选择实时任务的独享资源组。
    说明 实时同步任务仅支持运行在独享数据集成资源组上,详情请参见新增和使用独享数据集成资源组
    实时同步任务名称 实时同步任务的名称。
    选择调度资源组 分别选择任务调度和全量离线任务需要使用的独享资源组。目前解决方案仅支持使用独享数据集成资源组,详情请参见新增和使用独享数据集成资源组
    选择全量离线任务独享资源组
    来源端读取支持最大连接数 读取端的最大连接数,即来源端数据库的JDBC连接数。请根据数据库资源的实际情况合理配置。
    离线任务名称规则 全量同步时的离线任务名称。创建解决方案后,会先生成一个离线任务用于读取全量数据,再生成实时任务持续读取实时增量数据。
  5. 单击完成配置,完成数据同步解决方案任务创建。

执行数据同步解决方案任务

解决方案任务列表页面,单击相应任务后的提交执行,运行创建的数据同步解决方案任务。

附:Base表数据未产出排查思路

同步至MaxCompute全增量Merge分为两个阶段:
  1. 实时同步产出增量数据log表
  2. Merge任务将Base表全量数据与实时同步产出的增量数据进行Merge,最后将结果写入Base表。目前Merge周期为1天。
Merge流程 现象 原因 解决方案
一键odpsmerge逻辑 增量Log表T-1分区数据产出检查失败 实时同步任务执行异常,导致增量Log表T-1数据未正常产出。
  • 检查实时同步任务失败原因,并从失败位点重启该任务。
    说明 RDS Binlog保留时长有限制,若对应时间点Binlog被清理,实时同步将会报错位点找不到。
  • 为实时同步子任务设置监控报警。
目标Base表T-2分区产出检查失败
  1. 前一天Merge任务执行失败
  2. Base表前一天分区被删除
  • 为Merge节点配置运行状态监控,详情请参见:自定义规则
  • 若误删除Base表T-2分区,请通过补数据功能将其补齐,补齐后,再重新运行Merge节点。