数据集成侧同步任务能力说明

DataWorks为您提供多种数据源之间进行不同数据同步场景的全增量同步任务,包括实时数据同步、离线全量同步、离线增量同步等同步场景,助力企业数据更高效、更便捷的一键上云。

背景信息

实际业务场景下,数据同步通常不能通过一个或多个简单离线同步或者实时同步任务完成,而是由多个离线同步实时同步数据处理等任务组合完成,这就会导致数据同步场景下的配置复杂度非常高。

为了解决上述问题,DataWorks提出了面向业务场景的同步任务配置化方案,支持不同数据源的一键同步功能,例如,“一键实时同步至Elasticsearch”、“一键实时同步至Hologres”和“一键实时同步至MaxCompute”等功能,通过此类功能,您只需要进行简单的配置,就可以完成一个复杂业务场景。

说明

以业务数据库数据同步到MaxCompute数据仓库为例,当有大量的数据存储在数据库系统里,需要将数据库中的全量及增量数据同步到MaxCompute进行数仓分析时,数据集成传统方式是通过全量同步或者依赖数据库表中的modify_time等字段进行增量同步。但实际生产场景下,数据库表中不一定存在modify_time等字段,因此不能使用传统的基于JDBC抽取的方式进行增量同步。而“一键实时同步至MaxCompute”功能实现了数据库全增量实时同步到MaxCompute以及在MaxCompute上进行自动的全增量合并,可以使整个同步场景化繁为简。

全增量同步任务具有如下优势:

  • 全量数据初始化。

  • 增量数据实时写入。

  • 增量数据和全量数据定时自动合并写入新的全量表分区。

功能概述

全增量同步任务支持的能力如下图所示:架构

功能

描述

复杂网络环境下的数据同步

支持云数据库、本地IDC、ECS自建数据库或非阿里云数据库等环境下的数据同步。您可以根据数据库所在网络环境,选择合适的全增量同步任务来实现数据源与资源组的网络连通。在配置同步任务前,您需要确保数据集成资源组与您将同步的数据来源端与目标端网络环境已经连通,对应数据库环境与网络连通配置详情请参见:网络连通方案

数据同步场景

全增量同步任务支持单表数据同步至目标端单表、分库分表数据同步至目标端单表、整库(多表)数据同步至目标端多表。

DataWorks为您提供多种类型的全增量同步任务。包括整库离线同步(一次性全量同步、周期性全量同步、离线全增量同步、一次性增量同步、周期性增量同步)、一键实时同步(一次性全量同步,实时增量同步)。详情请参见:支持的数据源及同步方案

全增量同步任务配置

全增量同步任务配置时支持的能力如下,详细配置请参见:数据集成侧同步任务配置。任务配置相关能力说明请参见:数据集成侧同步任务配置相关能力

全增量同步任务运维

  • 全增量同步任务为您提供了一键增加及删除同步表功能,方便您为已成功配置运行的同步任务快速添加新表或删除已有同步表。详情请参见:管理全增量同步任务

  • 支持您查看所选时间周期中,目标全增量同步任务的整体运行状态分布、资源使用率,以及离线和实时子任务的运行状态分布、同步速率、同步数据及任务延迟情况,详情请参见:查看任务运行概况

  • 全增量同步任务将根据方案属性,生成实时子任务或多个离线子任务,您可以对子任务自定义监控报警规则。实时同步子任务监控报警详情请参见实时同步任务运维,离线同步子任务详情请参见离线同步任务运维

数据集成侧同步任务配置相关能力

支持的能力

说明

刷新表映射

单击刷新源端与目标端表映射按钮后,下方表格会显示刷新后的结果。刷新映射关系如上图所示,hudi_b.tb_order_1为已有表,hudi_b.tb_order_2hudi_b.tb_order_3为自动建表。

查看或修改单表表结构

单击表名列的表名,可以打开可视化建表的配置窗口,支持您根据业务需要,对表进行编辑。编辑表结构

上图示例对自动建表hudi_b.tb_order_3增加了一个add_col字段,数据类型配置为TEXT,字段描述为新建表增加字段。调整完毕后,单击应用并刷新映射按钮进行保存。

重要

在自动建表场景下:

  • 源端已有字段不允许删除或调整顺序。

  • 源端已有字段名不允许修改。

  • 源端已有字段可以调整数据类型、主键、描述等配置。

已有表上图示例对已有表hudi_b.tb_order_1增加了一个add_col字段,数据类型配置为TEXT,字段描述为已有表增加字段。调整完毕后,单击应用并刷新映射按钮进行保存。

重要

在使用已有表场景下:

  • 已有字段除描述外,不允许做任何调整。

  • 可以新增字段。

批量修改目标表结构

修改目标表结构

选中多行记录后,单击批量修改目标表结构按钮,可以对选中表进行批量操作。调整完毕后,单击应用并刷新映射按钮进行保存。

重要
  • 单击批量修改目标表结构按钮后,弹窗默认显示选中表字段的交集。

  • 在此弹窗中,可以添加新的字段,如上图所示,添加字段batch_add_col

您还可以单击hudi_b.tb_order_3查看执行批量操作后的最终表结构,如下图所示:查看结果

自定义目标schema名或表名

全增量同步任务默认将源端数据库、数据表写入目标端同名schema或同名表中,如果目标端不存在该schema或表,将会自动创建。同时,支持您定义最终写入目标端的schema或表名称。详情请参见:设置表(库)名的映射规则

说明
  • 源端表名、schema名支持通过正则表达式转换为目标端最终写入的表名、schema名。

  • 您还可以使用内置的变量组合生成目标表名,同时,对转换后的目标表名支持添加前缀和后缀。

为目标字段赋值

全增量同步任务默认同名映射,将源端字段写入目标端同名字段中。同时,支持您为目标表新增字段并为字段赋值常量或变量。单击目标表字段赋值列的编辑,弹窗会自动显示出调整后的表结构。

  • idname字段在源表、目标表中均存在,此字段默认使用源端表对应字段的值,不允许修改。

  • add_colbatch_add_col为手动调整后的Hologres表与源端表结构的DIFF字段,此字段允许进行赋值操作。以下图配置为例:

    • 手动赋值:输入固定字符串固定值写入,则此字符串将被写入到Hologres表中add_col字段中。

    • 选择变量:选择内置变量,变量代表不同的业务含义,变量指代的内容,将被写入到Hologres表的batch_add_col字段中。

赋值

说明

支持的变量解释:

  • DATASOURCE_NAME_SRC:源端数据源名称

  • DB_NAME_SRC:源端数据库名称

  • TABLE_NAME_SRC:源表名称

  • DATASOURCE_NAME_DEST:目标端数据源名称

  • DB_NAME_DEST:目标端数据库名称

  • TABLE_NAME_DEST:目标表名称

  • DB_NAME_SRC_TRANSED:源库名转换后名称

  • EXECUTE_TIME:源端事件变更时间

定义DDL/DML消息处理策略

针对源端DDL类型的消息,您可以在任务配置时,根据业务需要,对不同的DDL消息设置同步至目标端的处理策略。目标端支持的DML与DDL操作详情请参见:支持的DML及DDL操作

说明
  • 整库离线同步场景不支持该功能。

  • DML规则支持逻辑删除:开启逻辑删除后,将自动在目标表追加字段_data_integration_deleted_,字段类型为Boolean。当上游数据为DELETE操作时,Hologres侧将转换为update tb_xxx set _data_integration_deleted_=true where id=xxx进行实际写入,以实现逻辑删除功能。

  • 开启逻辑删除后,可以再次查看目标表结构配置,如下图所示:查看配置