完成数据源、网络、资源的准备配置后,您可创建实时同步任务,将多种输入及输出数据源搭配组成同步链路,进行单表或整库数据的实时增量同步。本文为您介绍如何创建单表或整库增量数据实时同步任务,并在创建完成后查看任务运行情况。
前提条件
已完成数据源配置。您需要在数据集成同步任务配置前,配置好您需要同步的源端和目标端数据库,以便在同步任务配置过程中,可通过选择数据源名称来控制同步任务的读取和写入数据库。实时同步支持的数据源及其配置详情请参见实时同步支持的数据源。
说明数据源相关能力介绍详情请参见:数据源概述。
已购买合适规格的独享数据集成资源组。详情请参见:新增和使用独享数据集成资源组。
独享数据集成资源组与数据源网络已打通。详情请参见:网络连通方案。
进入数据开发
实时同步任务配置入口在数据开发模块,您需要前往数据开发进行创建。
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
操作流程
步骤一:创建实时同步任务
创建业务流程。详情请参见:创建业务流程。
创建实时同步任务。
你可以通过以下两种方式创建实时同步任务。
方式一:展开业务流程,右键单击
。方式二:双击业务流程名称,将数据集成目录下的实时同步节点直接拖拽至右侧业务流程编辑面板。
在新建节点对话框中,配置各项参数。
参数
描述
节点类型
默认为实时同步。
同步方式
实时同步单表增量数据时,同步方式选择单表(Topic)到单表(Topic)ETL,用于实时同步单个或多个表数据至目标单表。
说明单表实时同步仅支持同步数据至目标单表,如果您需要同步数据至多个表,您可以采用以下方案:
如果您需要对同步过程中的数据进行过滤、字符串替换或数据脱敏,您可以创建多个单表数据实时同步任务。
如果您需要同步多个表至多个表,除了可以创建多个单表实时同步任务,部分数据源还可以选择配置整库实时同步任务。
如果您需要先同步全量数据再将增量数据实时同步至目标端,您可选择同步解决方案。详情请参见:数据集成侧同步任务配置。
实时同步整库增量数据时,同步方式选择数据库变更数据同步(例如,数据库变更数据同步到MaxCompute)。
路径
存放实时同步任务的目录。
名称
节点名称必须是大小写字母、中文、数字、下划线(_)以及英文句号(.),且不能超过128个字符。
步骤二:配置资源组
实时同步任务仅支持使用独享数据集成资源组,您可以在实时同步任务编辑页面的右侧导航栏,单击基本配置。在资源组下拉框选择已经与数据库网络连通的独享数据集成资源组。
建议实时同步任务与离线同步任务运行在不同的资源组上,避免混跑带来资源互相抢占、运行态互相影响等问题,例如,CPU、内存、网络等互相影响,导致离线同步任务突然变慢、实时同步任务延迟、以及在资源不足的极端情况下可能会出现任务被OOM Killer杀掉等问题。
步骤三:配置实时同步任务
配置单表实时同步任务
配置输入数据源。
在实时同步任务编辑页面左侧的输入区域,拖拽目标输入数据源组件至右侧面板。
单击输入组件,在右侧的节点配置对话框配置相关信息。
目前,同步单表数据支持的输入数据源类型及其配置如下:
可选:配置数据转换方式。
在实时同步数据的过程中,如果您希望将输入的数据转换为需要使用的格式进行输出,则可以配置数据转换方式。
在实时同步任务编辑页面左侧的转换区域,拖拽需要使用的数据转换方式组件至右侧面板。
目前,同步单表数据支持的转换方式如下:
数据过滤:您可以对数据进行规则过滤,例如过滤字段的大小等,符合规则的数据才会被保留。
字符串替换:您可以对字符串类型的字段进行替换。
数据脱敏:您以对实时同步的单表数据进行脱敏,然后存储到指定的数据库位置。
单击转换组件,在右侧的节点配置对话框配置相关信息。
配置输出数据源。
在实时同步任务编辑页面左侧的输出区域,拖拽目标输出数据源组件至右侧面板。
单击输出组件,在右侧的节点配置对话框配置相关信息。
目前,同步单表数据支持的输出数据源类型及其配置如下:
配置输入、输出组件的上下游关系。
添加完输入、输出组件后,您可以根据业务需求,通过连线完成相应的组件关系连接,数据会根据连线从上游组件同步至下游组件。
配置整库实时同步任务
设置同步来源和规则。
在数据来源区域,选择要同步的数据源类型和数据源名称等信息。
选择要同步的表。
在选择同步的源表区域,为您展示所选数据源下所有的表,您可以在源端库表区域选中需要同步的整库全表或部分表,并单击图标,将其移动至已选库表。
重要如果选中的表没有主键,将无法进行实时同步。
设置表名的映射规则。
在此步骤中,您可以选择源端数据源中需要同步的库和表,同步解决方案默认将源端数据库、数据表写入目标端同名schema或同名表中,如果目标端不存在该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_前缀。
选择目标数据源并配置目标表或topic。
在设置目标表或Topic页面,配置目标数据源基本信息。例如,写入模式、分区设置等。具体配置以各数据源实时同步界面为准。
单击刷新源表和目标表映射,创建需要同步的源表和目标表的映射关系。
支持您自定义目标schema、自定义目标表名、通过编辑附加字段为目标表添加常量,变量等操作。具体配置以各数据源实时同步界面为准。
说明如果同步的表数量较多,会导致执行进度较慢,请耐心等待。
可选:设置表粒度同步规则。
部分同步方案支持自定义表级DML处理策略,即当源表发生插入、更新、删除时,您可以在此处定义对应的处理策略。
说明不同数据源支持的DML操作可能存在差异,具体同步方案是否支持DML处理策略,请以产品界面为准。数据源当前的DML支持情况请参见支持的DML及DDL操作。
设置DDL消息处理规则。
来源数据源会包含许多DDL操作,进行实时同步时,您可以根据业务需求,对不同的DDL消息设置同步至目标端的处理策略。不同数据源支持的DDL操作可能存在差异,详情请参见:支持的DML及DDL操作。您可以在 页面,针对每个写入的目标数据库类型,设置DDL处理策略。不同DDL消息处理策略如下表所示。
DDL消息类型
处理策略
新建表
DataWorks收到对应类型的DDL消息时,处理策略如下:
正常处理:将相应消息继续下发给目标数据源,由目标数据源来处理。因为不同目标数据源对DDL消息处理策略可能会不同,因此DataWorks只执行转发操作。
忽略:直接丢弃该消息,不再向目标数据源发送。
告警:直接丢弃该消息,同时会在实时同步日志中记录告警信息,指明该消息因执行出错被丢弃。
出错:实时同步任务直接显示出错状态并终止运行。
删除表
新增列
删除列
重命名表
重命名列
修改列类型
清空表
运行资源设置。
提供任务并发数控制功能来限制数据集成读取和写入数据库的最大并发数。
支持您控制同步任务是否容忍脏数据的产生。
当不允许脏数据产生时,则同步任务执行过程中如果产生脏数据,任务将失败退出。
当允许脏数据时:同步任务将忽略脏数据(即不会写入目标端),并正常执行。
单击完成配置。
步骤四:提交并发布实时同步任务
单击工具栏中的图标,保存节点。
单击工具栏中的图标,提交节点任务。
在提交新版本对话框中,输入变更描述。
单击确定。
如果您使用的是标准模式的工作空间,任务提交成功后,需要将任务发布至生产环境进行发布。请单击顶部菜单栏左侧的任务发布。具体操作请参见发布任务。
后续步骤
任务配置完成后,您可以在实时同步任务运维。
面板启动并管理该任务,详情请参见:附录:任务迁移
在DataStudio页面已配置好的单表实时集成任务可以通过迁移至主站将该任务迁移至数据集成页面。
目前仅支持的实时集成任务:
Kafka至MaxCompute单表实时集成任务。
Kafka至Hologres单表实时集成任务。
双击需要迁移的单表实时集成任务,进入任务编辑页面,单击迁移至主站即可对任务进行迁移。
单击左上角选择进入
,查看同步任务页面,可在任务列表内查看迁移成功的单表实时集成任务。
迁移至主站在数据集成主站即可直接运维,无需跳转运维中心,在运维中心中,此任务将不可见。迁移不影响已经保存的任务配置,和正在运行中的任务。
迁移后,原任务将会移至数据开发回收站,此后的编辑和运维动作都将只能在数据集成主站任务列表页面进行操作。