本文为您介绍如何创建实时集成至MySQL的任务。
前提条件
已完成数据源配置。您需要在配置实时集成任务前,配置好您需要集成的数据源,以便在配置实时集成任务过程中,选择对应的来源数据和目标数据。具体操作,请参见实时集成支持的数据源。
背景信息
实时集成至MySQL采用JDBC协议,不同的消息将采用以下处理策略。
结果表不存在主键时。
接收到INSERT消息时,将直接进行Append写入。
接收到UPDATE_BEFORE消息时,将会被直接丢弃,不做处理;接收到UPDATE_AFTER消息时,将直接进行Append写入。
接收到DELETE消息时,将会被直接丢弃,不做处理。
结果表存在主键时。
接收到INSERT消息时,将作为UPSERT消息进行处理。
接收到UPDATE_BEFORE消息时,将会被直接丢弃,不做处理;接收到UPDATE_AFTER消息时,将作为UPSERT消息进行处理。
接收到DELETE消息时,将作为DELETE消息进行处理。
因JDBC协议为立即写,当任务Failover的情况下且结果表没有主键时,可能存在重复数据,不支持Exactly-Once保证。
因JDBC协议仅支持建表DDL和加字段DDL,其他类型的DDL消息将会被直接丢弃。
目前仅支持基本数据类型,不支持地图类型。
为避免乱序导致的数据不一致情况,仅支持单并发。
因MySQL的时间数据格式具备特定范围,可能存在不兼容情况,建议通过更改MySQL的字段类型为VARCHAR进行处理。
支持MySQL8.0和MySQL5.7版本。
步骤一:新建实时集成任务
在Dataphin首页的顶部菜单栏中,选择研发 > 数据集成。
在顶部菜单栏中选择项目(Dev-Prod模式还需要选择环境)。
在左侧导航栏中选择集成 > 实时集成,在右侧实时集成列表中单击图标,选择实时集成任务。
在新建实时集成任务对话框中,填写任务名称、描述并选择目录。
参数
描述
任务名称
填写实时任务名称。
以字母开头,仅包含小写英文字母、数字、下划线(_),长度限制为4~63个字符。
描述
填写任务的简单描述信息,长度不超过1000个字符。
选择目录
选择实时任务所存放的目录。
若未创建目录,您可以新建文件夹,操作方法如下:
在页面左侧实时任务列表上方单击图标,打开新建文件夹对话框。
在新建文件夹对话框中输入文件夹名称并根据需要选择目录位置。
单击确定。
配置完成后,单击确定。
在新建的实时集成任务中,配置来源数据与目标数据。
数据源配置
分区
参数
描述
来源数据
数据源类型
选择来源数据源类型。Dataphin实时集成支持的数据源,请参见实时集成支持的数据源。
数据源
选择来源数据源。
系统提供新建数据源入口,您可以单击新建,在数据源页面新建数据源。具体操作,请参见数据源管理概述。
重要需在数据源端开启日志,并确保配置的账户有读取日志权限,否则系统无法实时同步该数据源。
同步方案
仅支持实时增量。将源数据库的增量变更按照变更发生的顺序采集并实时写入下游目标库中。
圈选方式
支持整库、圈选表、排除表三种方式。
整库:对当前数据库进行整库数据同步。
仅当来源数据源类型选择MySQL时,将同步所选数据源下所有数据库中的所有表。
圈选表/排除表:选中当前数据库中部分表进行实时同步。
批量选择/批量排除:批量选择时,所选择当前数据库的多个表将进行实时同步;批量排除时,所选择当前数据库的多个表将不进行实时同步。
当来源数据源类型选择MySQL时,支持选择所选数据源下所有数据库中的所有表,列表中以
DBname.Tablename
格式展示各表。当来源数据源类型选择PostgreSQL时,不支持排除表方式。
正则匹配:可在正则表达式输入框内填写表名的正则表达式。适用Java正则表达式,如
schemaA.*|schemaB.*
。仅当来源数据源类型选择MySQL时,支持批量匹配所选数据源下所有数据库中的所有表,可使用数据库名(DBname)和表名(Tablename)进行正则匹配。
当来源数据源类型选择PostgreSQL、Microsoft SQL Server或IBM DB2时,不支持正则匹配。
目标数据
数据源类型
选择MySQL数据源类型。
数据源
选择目标数据源。
系统提供新建数据源入口,您可以单击新建,在数据源页面新建数据源。具体操作,请参见数据源管理概述。
表名转换
目标表名仅支持英文字母、数字及下划线(_),若来源表名含有其他字符,需配置表名转换规则。
单击配置表名转换,打开配置表名转换规则对话框。
替换字符串:单击新建规则新增一行规则,分别配置来源表待替换字符串和目标表替换字符串,最多增加5条规则。
表名前缀/后缀:不能为空,且仅支持英文字母、数字和下划线(_),长度不超过32个字符。
说明完成配置表名转换后,系统将根据表名转化规则从上到下的顺序,自动进行匹配替换。
替换字符及表名前后缀中的英文字符将自动转换为小写。
分区设置
分区间隔:默认小时(hour),可选择天(day)。
说明分区间隔-小时:为YYYY、MM、DD、HH四级分区。
分区间隔-天:为YYYY、MM、DD三级分区。
格式:目前仅支持多分区。
目标表配置
区块
描述
①查看附加字段
实时增量同步时,自动建表默认会添加附加字段以便数据使用。单击查看附加字段查看字段。在附加字段对话框中,可查看当前所附加的字段信息。
重要如选择已有表作为目标表,且表中无附加字段,建议自行为已有目标表添加附加字段,否则影响数据使用。
单击查看添加字段的DDL可查看添加附加字段的DDL语句。
②搜索与筛选
支持按源表和目标表名进行搜索。如需快速筛选目标表,单击顶部的图标,支持按映射状态和目标建表方式进行筛选。
③全局字段、刷新表及映射关系
全局字段:
单击添加全局字段,可在添加全局字段对话框中添加全局字段。
名称:全局的名称。
类型:支持String、Long、Double、Date、Boolean数据类型。
值:全局字段的值。
描述:对字段的描述。
说明全局和单表同时添加了字段时,仅单表添加字段生效。
目前仅支持添加常量。
全局字段仅对方式为自动建表的目标表生效。
刷新
如需刷新目标表配置列表,请单击刷新表及映射关系。
重要目标表配置中已有内容时,重新选择数据源类型及数据源会导致目标表列表及映射关系情况重置,请谨慎操作。
刷新过程中随时可点击再次刷新。每次点击刷新表及映射关系,只保存配置的全局增加字段,其他信息包括目标表建立方式、目标表名及删除记录,都不保存。
④目标库列表
目标库列表包括序号、源表、映射状态、目标表建立方式、目标表名、同时您可以对目标表进行添加字段、查看字段、刷新、删除的操作。
目标表建立方式分为以下三种:
若目标库中存在与来源表同名的表,则目标表建立方式为使用已有表,默认使用此表作为目标表。如需改为自动建表,需添加表名转换规则或前后缀后重新进行映射。
若目标库中未找到同名表,则目标表建立方式默认为自动建表,也可更换方式为使用已有表,选择已存在的表进行同步。
仅自动建表的表支持添加字段或自定义DDL建表,全局字段也仅对自动建表的表生效。
说明目标表名仅支持英文字母、数字及下划线。如来源表名含有其他字符,请配置表名转换规则。
映射状态:不同的映射状态显示不同的操作项。分别为:
完成:正常完成映射。
未完成:修改状态后,未刷新映射。
映射中:正在等待映射或在映射中。
异常:存在数据源或系统内部错误。
失败:目标分区表与实时任务设定的分区不一致。
告警:来源表与目标表存可能存在不兼容的数据类型。
自定义建表:可通过添加字段或DDL方式自定义建表;开启自定义建表后,全局添加字段不再生效。
说明添加字段后只在自动建表的操作栏里展示。
不支持修改已存在的目标表,即建表方式为使用已有表的目标表。
查看字段:可查看源表及目标表的字段和类型。
刷新:重新进行源表和目标表的映射。
删除:源表删除后不可撤销。
⑤批量操作
您可对目标表进行批量删除操作。
DDL处理策略
忽略:丢弃掉此DDL信息,不再向目标数据源发送此信息。
出错:直接让实时同步任务以出错状态终止运行。
说明当来源数据源为MySQL、Oracle时,支持DDL处理策略;当来源数据源为PostgreSQL时,不支持DDL处理策略。
配置完成后,单击保存。
步骤二:配置实时集成任务属性
单击当前实时集成任务页签顶部菜单栏中的资源配置,或单击右侧边栏的属性,打开属性面板。
分别配置当前实时集成任务的基本信息和资源配置。
基本信息:选择当前实时集成任务的开发负责人和运维负责人,并填入当前任务的相应描述,不超过1000个字符。
资源配置:详情请参见实时集成资源配置。
步骤三:提交实时集成任务
单击提交,提交当前实时集成任务。
在提交对话框,输入提交备注信息并单击确定并提交。
完成提交后,在提交对话框中,可查看提交详情。
如果项目的模式为Dev-Prod,则您需要发布实时集成任务至生产环境。具体操作,请参见管理发布任务。
后续步骤
提交或发布任务至生产环境后,您可在运维中心查看并运维实时集成任务,保证任务的正常运行。具体操作,请参见查看并管理实时任务。