本文为您介绍如何通过DataWorks数据集成将MySQL全增量数据一体化同步至MaxCompute表中。
前提条件
- 已完成MaxCompute和MySql数据源配置。您需要将数据库添加至DataWorks上,以便在同步任务配置时,可通过选择数据源名称来控制同步读取和写入的数据库。本实践中创建的数据源名为
doc_mysql1
,详情请参见配置MySQL数据源、配置MaxCompute数据源。说明 数据源相关能力介绍详情请参见:数据源概述。 - 已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组。
- 已完成独享数据集成资源组与数据源的网络连通。详情请参见:配置资源组与网络连通。
- 已完成数据源环境准备。
需求分析
- 数据:将MySQL全量数据一次性同步至MaxCompute,增量数据实时同步MaxCompute Log表,全增量数据定时Merge。
- 表:将源端所有
doc_
前缀的表名,在写入目标端时统一更新为ods_
前缀。 - 字段:目标表在原有表结构基础上,增加
execute_time
字段用于记录源端表某个记录发生变更的时间。
源端数据库 | 源端待同步表 | 写入的目标表 | 目标表新增字段 |
---|---|---|---|
doc_demo1 | doc_tb1 | ods_tb1 | execute_time |
doc_tb2_nopk | ods_tb2_nopk |
操作流程
创建同步任务
- 选择同步方案。创建同步解决方案任务,选择需要同步的源端数据源MySQL,目标端数据源MaxCompute,并选择一键实时同步至MaxCompute方案。
- 配置网络连通。源端选择已创建的数据源
doc_mysql1
,目标数据源为DataWorks工作空间引擎绑定的默认数据源,并测试连通性。 - 设置同步来源与规则。
- 设置目标表。
- DDL消息处理策略。
来源数据源会包含许多DDL操作,数据集成体提供默认处理策略,您也可以根据业务需求,对不同的DDL消息设置同步至目标端的处理策略。不同DDL消息处理策略请参见:DDL消息处理规则。
本方案使用默认处理规则。
- 设置任务运行资源。
当前方案创建后将分别生成全量数据离线同步子任务和增量数据实时同步子任务。您需要在运行资源设置界面配置离线同步任务和实时同步任务的相关属性。
包括实时增量同步及离线全量同步使用的独享数据集成资源组、离线全量同步使用的调度资源组,同时,单击高级配置可配置是否容忍脏数据、任务最大并发数、源库允许支持的最大连接数等参数。
说明- DataWorks的离线同步任务通过调度资源组将其下发到数据集成任务执行资源组上执行,所以离线同步任务除了涉及数据集成任务执行资源组外,还会占用调度资源组资源。如果使用了独享调度资源组,将会产生调度实例费用。您可通过任务下发机制对该机制进行了解。
- 离线和实时同步任务推荐使用不同的资源组,以便任务分开执行。如果选择同一个资源组,任务混跑会带来资源抢占、运行态互相影响等问题。例如,CPU、内存、网络等互相影响,可能会导致离线任务变慢或实时任务延迟等问题,甚至在资源不足的极端情况下,可能会出现任务被OOM KILLER杀掉等问题。
执行同步任务
- 进入 界面,找到已创建的同步方案。
- 单击操作列的启动/提交执行按钮,启动同步的运行。
- 单击操作列的执行详情,查看任务的详细执行过程。
说明 您可重点关注以下步骤中创建的表及节点任务名称以便进行后续运维。例如,创建MaxCompute Log表、创建MaxCompute Base表、创建数据集成实时同步任务、提交发布增全量Merge Into节点。
同步任务运维
同步至MaxCompute全增量Merge分为3个阶段:
- 任务配置当天,执行全量数据初始化的离线同步任务。
- 任务配置当天,待全量数据初始化完成后,启动实时同步任务,将增量数据实时同步至MaxCompute Log表。
- 任务配置第二天,Merge任务将Base表全量数据与实时同步任务的增量数据进行Merge,最后将结果写入Base表。目前Merge周期为1天。
- 实时同步报警配置。
- Merge节点监控报警配置。为避免全增量数据合并期间出现错误,影响Base表数据产出,建议您通过规则管理为该Merge节点设置监控报警。
附:查询数据
由于目前全增量Merge周期为一天,所以任务配置当天,我们只能在目标表查询到同步的全量数据,待第二天后,可查询到全增量Merge后的数据。
查看全量数据写入情况
在数据开发界面找到ODPS SQL节点,通过命令查询表数据,查询数据前请先在数据集成>任务运维界面确认执行步骤中,启动全量数据初始化同步任务运行步骤已执行成功。创建ODPS SQL临时查询节点,详情请参见创建临时查询。
