本文以MySQL实时入湖写入OSS-HDFS场景为例,为您介绍如何通过数据集成的方式,实时入湖。
前提条件
如果您是新用户,需购买通用资源组,以供创建数据源与集成任务使用。详情请参见:使用Serverless资源组。如果您已拥有独享集成资源组,则使用独享集成资源组即可,无需增购新版资源组。详情请参见:独享数据集成资源组。
已完成MySQL和OSS-HDFS数据源配置,以便在同步任务配置时,可通过选择数据源名称来控制同步读取和写入的数据库。
已完成数据源环境准备。来源数据源为MySQL时,需要开启Binlog相关功能,详情请参见:MySQL环境准备。
使用限制
源端主键列值,不允许为空(null或空字符串均不支持),否则会导致同步任务报错。
能力简介
支持将源端数据源MySQL的数据结构迁移到OSS-HDFS数据湖,且支持选择将历史存量数据(整库或部分表)一次性同步至OSS数据湖,增量数据实时同步至OSS数据湖。
支持源端新增列的DDL操作,同步过程中可根据源端数据库表数量的变化自动添加表。
重要暂不支持源端其他DDL(删除表、重命名表等)操作,会导致同步任务失败。
如果您当前账号下开通了DLF产品,则会自动在DLF中构建对应的元数据库和元数据表信息。
步骤一:创建同步任务
新建同步任务。
进入数据集成页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据集成。
单击同步任务,进入数据集成页面,在创建同步任务来源侧选择MySQL,在去向侧选择OSS-HDFS后,单击新建同步任务,进入同步任务编辑页面。
编辑同步任务
基本配置:
数据来源与去向:来源侧选择MySQL,在去向侧选择OSS-HDFS。
新任务名称:自定义命名。
同步类型:整库实时。
同步步骤:结构迁移、全量同步以及增量同步。
网络与资源配置:
资源组:选择前提条件中购买的资源组。
来源数据源:选择对应的MySQL数据源,以及编码格式和时区。
去向数据源:选择对应的OSS-HDFS数据源。
配置完以上模块后,单击测试所有连通性,测试数据源与资源组中的连通性。
配置完成后,单击下一步,继续进行集成配置。
入湖配置。
写入格式的修改将影响整个任务的配置,共分为Hudi、Paimon、以及Iceberg格式。
Hudi
当写入格式配置为Hudi时可参考以下配置:
目标侧配置
存储路径选择:选择要存放入湖文件的warehouse存储路径,最终将会以
oss://bucket/pointed_path/pre_database/object_name
的形式建立目录和文件。选择元数据库自动构建位置:如果您当前账号下开通了DLF产品,选择构建DLF1.0后,则会自动在DLF中构建对应的元数据库和元数据表信息。
分区信息:
设置数据入湖存储时的分区,后续入湖同步写入数据时,根据来源端数据的写入时间落入相应的分区里。分区设置注意事项如下:
支持使用${yyyy}(年)、${MM}(月)、${dd}(日)、${HH}(时)这些变量,最小粒度到小时,不支持分钟、秒的时间粒度。
支持将变量结合字符串拼接组合。例如将变量与下划线拼接组合:${yyyy}_${MM}_${dd}_${HH}。
支持设置多个分区使写入的数据表为多级分区表,分区级别与此处设置的分区顺序一致。
选择要同步的库表
源库选择限定条件:根据个例或正则来添加或排除数据库。
源表选择限定条件。根据个例或正则来添加或排除数据表。
选库预览:根据待选择数据源、待选择数据库以及待选择表来圈定需要同步至OSS-HDFS数据湖的数据。
Paimon
当写入格式配置为Paimon时可参考以下配置:
目标侧配置
存储路径选择:选择要存放入湖文件的warehouse存储路径,最终将会以
oss://bucket/pointed_path/pre_database/object_name
的形式建立目录和文件。选择元数据库自动构建位置:如果您当前账号下开通了DLF产品,选择构建DLF1.0后,则会自动在DLF中构建对应的元数据库和元数据表信息。
选择需要同步的库表:源端库表区域选择源端数据源下需要同步的表,并单击,将其移动至右侧已选库表。
目标表映射
在目标表映射区域,全选目标表映射框中的表信息,单击批量刷新映射按钮。
说明在上一步骤选择完需要同步的表后,将自动在此界面展示当前待同步的表,但目标表的相关属性默认为待映射状态,需要您定义并确认源表与目标表映射关系,即数据的读取与写入关系,然后单击刷新映射后才可进入下一步操作。您可以直接刷新映射,或自定义目标表规则后,再刷新映射。
您还可以选中列表中的表信息,单击批量修改,配置如下信息。
配置项
描述
目标表字段赋值
支持为目标表添加常量和变量。
目标表名映射自定义
可以使用内置变量和手动输入的字符串拼接成最终目标表名。其中,支持您编辑内置变量,例如:进行字符串替换。
DML规则配置
正常处理:此DML消息将会继续下发给目标数据源,由目标数据源来处理。
忽略:丢弃掉此DML消息,不再向目标数据源发送此消息,对应数据不会改变。
有条件的正常处理:按过滤表达式进行条件过滤,满足过滤条件的数据会被正常处理,不满足的会被忽略掉。
如不设置,则默认为正常处理。
目标表结构-批量修改和新增字段
可以批量修改目标表结构、添加字段和设置主键等配置。
目标库名映射自定义
可以使用内置变量和字符串拼接成最终目标库名。内置变量可以编辑,例如:进行字符串替换。
Iceberg
当写入格式配置为Iceberg时可参考以下配置:
目标侧配置
存储路径选择:选择要存放入湖文件的warehouse存储路径,最终将会以
oss://bucket/pointed_path/pre_database/object_name
的形式建立目录和文件。选择元数据库自动构建位置:如果您当前账号下开通了DLF产品,选择构建DLF1.0后,则会自动在DLF中构建对应的元数据库和元数据表信息。
选择需要同步的库表:源端库表区域选择源端数据源下需要同步的表,并单击,将其移动至右侧已选库表。
目标表映射
在目标表映射区域,全选目标表映射框中的表信息,单击批量刷新映射按钮。
说明在上一步骤选择完需要同步的表后,将自动在此界面展示当前待同步的表,但目标表的相关属性默认为待映射状态,需要您定义并确认源表与目标表映射关系,即数据的读取与写入关系,然后单击刷新映射后才可进入下一步操作。您可以直接刷新映射,或自定义目标表规则后,再刷新映射。
您还可以选中列表中的表信息,单击批量修改,配置如下信息。
配置项
描述
目标表字段赋值
支持为目标表添加常量和变量。
目标表名映射自定义
可以使用内置变量和手动输入的字符串拼接成最终目标表名。其中,支持您编辑内置变量,例如:进行字符串替换。
DML规则配置
正常处理:此DML消息将会继续下发给目标数据源,由目标数据源来处理。
忽略:丢弃掉此DML消息,不再向目标数据源发送此消息,对应数据不会改变。
有条件的正常处理:按过滤表达式进行条件过滤,满足过滤条件的数据会被正常处理,不满足的会被忽略掉。
如不设置,则默认为正常处理。
目标表结构-批量修改和新增字段
可以批量修改目标表结构、添加字段和设置主键等配置。
目标库名映射自定义
可以使用内置变量和字符串拼接成最终目标库名。内置变量可以编辑,例如:进行字符串替换。
报警配置。
您可以单击右上角的报警配置,根据界面提示配置报警原因、报警方式等信息。
高级参数配置。
您可以单击右上角的高级参数,根据界面提示配置离线任务源端最大连接数以及运行时的实时同步任务Checkpoint时间间隔、任务并发度、Bucket Assign并行度以及单表写入并发度的配置。
DDL能力配置。
您可以单击右上角的DDL能力配置指定不同DDL操作的响应,支持新建表、删除表、新增列、删除列、重命名表、重命名列、修改列类型以及清空表。
资源组配置。
新建数据集成任务时,您可以在右上角的资源组配置处修改同步资源组使用的通用型资源组,以及资源组的占用CU。
配置完以上配置后,单击完成配置,保存该任务。
步骤二:启动同步任务
创建完成同步任务后,单击打开菜单栏,进入
界面,找到已创建的同步方案。单击操作列的启动按钮,即可启动同步任务。
步骤三:运维同步任务
启动任务后,可对任务进行如下运维操作:
操作列中可以对已启动任务进行停止、查看、编辑、重跑、克隆以及对该任务进行报警配置以及修改责任人的操作。
还可以单击任务名,查看任务运行的基本信息,以及查看执行状态、运行日志、Failover和资源利用率等详情信息。
更多运维操作可参见:实时同步。