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