离线整库同步方案,可周期性和一次性将整库表数据同步到目标端,方案类型包括离线整库同步(一次性全量)、离线整库同步(周期性全量)、离线整库同步(一次性增量)、离线整库同步(周期性增量)、离线整库同步(一次性全量周期性增量) 五种类型,您可根据实际场景进行方案配置,助力您将业务数据更高效、更便捷的同步至湖仓一体分析(LAS)中。
本文为您介绍通过离线整库同步(一次性全量周期性增量)实践方案,将源端 MySQL 数据,以一次性全量任务+周期性增量任务的方式,同步到 LAS 数据表中。
在配置离线整库同步解决方案前,您需在数据源管理界面中,配置来源端 MySQL 和目标端 LAS 相应的数据源。详见配置数据源。
源端 MySQL 数据库中,创建以下表结构,并插入 5 条示例数据:
创建 MySQL 表:
CREATE TABLE `mysql_2_las` ( `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `Name` char(10) DEFAULT NULL, `Address` varchar(400) DEFAULT NULL, `Event_Time` bigint(20) DEFAULT NULL, `Price` double DEFAULT NULL, `Num_Big` bigint(20) DEFAULT NULL, `Num_Float` float(13, 3) DEFAULT NULL, `Datetime_Info` datetime DEFAULT NULL, `Timestamp_Info` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `Tinytext_Info` tinytext, PRIMARY KEY (`Id`) ) ENGINE = InnoDB AUTO_INCREMENT = 456014264 DEFAULT CHARSET = utf8;
插入模拟示例数据:
insert into mysql_2_las (Id, Name, Address, Event_Time, Price, Num_Big, Num_Float, Datetime_Info, Timestamp_Info, Tinytext_Info) values (1, 'dataleap', '六盘水市安次荆门路i座_282720', 1679897962, 87496.4557384283, 59534049432157, -19505.969, '2023-03-27 14:24:22', '2023-03-27 14:24:22', 'KKKKKKKKKK'); insert into mysql_2_las (Id, Name, Address, Event_Time, Price, Num_Big, Num_Float, Datetime_Info,Timestamp_Info, Tinytext_Info) values (2, '数据开发', '六盘水市安次荆门路i座_282720', 1679897962, 87496.4557384283, 59534049432157, -19505.969, '2023-03-27 14:24:22','2023-08-10 14:24:22', 'KKKKKKKKKK'); insert into mysql_2_las (Id, Name, Address, Event_Time, Price, Num_Big, Num_Float, Datetime_Info,Timestamp_Info, Tinytext_Info) values (3, '数据集成', '六盘水市安次荆门路i座_282720', 1679897962, 87496.4557384283, 59534049432157, -19505.969, '2023-03-27 14:24:22','2023-08-10 14:24:22', 'KKKKKKKKKK'); insert into mysql_2_las (Id, Name, Address, Event_Time, Price, Num_Big, Num_Float, Datetime_Info,Timestamp_Info, Tinytext_Info) values (4, '数据运维', '六盘水市安次荆门路i座_282720', 1679897962, 87496.4557384283, 59534049432157, -19505.969, '2023-03-27 14:24:22','2023-08-10 14:24:22', 'KKKKKKKKKK'); insert into mysql_2_las (Id, Name, Address, Event_Time, Price, Num_Big, Num_Float, Datetime_Info,Timestamp_Info, Tinytext_Info) values (5, '数据监控', '六盘水市安次荆门路i座_282720', 1679897962, 87496.4557384283, 59534049432157, -19505.969, '2023-03-27 14:24:22','2023-08-10 14:24:22', 'KKKKKKKKKK');
数据源准备完成后,您可开始进行离线整库同步方案配置:
进入配置界面后,您可按实际场景需求,完成方案的基本配置、数据来源配置、数据缓存配置、数据目标配置、运行配置等五个流程配置。
基本配置参数说明如下表所示。
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
*方案名称 | 输入整库离线同步方案名称:mysql2las全增量 |
方案描述 | 输入此方案的描述信息,方便后续维护管理。 |
*保存至 | 下拉选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理。 |
*链路类型 | 下拉选择来源 MySQL 类型和目标端 LAS 数据源类型。 |
*方案类型选择 | 方案类型选择离线整库同步(一次性全量周期性增量) 类型。 |
方案基本配置完成后,单击右下角下一步按钮,进行方案的数据来源配置。
在数据来源配置界面中,完成数据来源设置与库表映射规则匹配策略:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
数据源设置 | |
*数据源 | 下拉选择数据源管理中创建成功的 MySQL 数据源。若此前仍未创建相应数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。 |
*数据表 | 在左侧您可选择来源数据库表信息:
#{style="margin: 0; display: inline-flex;"}# 图标,将已选择的库表,添加至已选列表中,同理,您也可通过
|
映射规则 | |
*库表匹配策略 | 支持选择与来源库表同名或设定自定义方式匹配策略:
此处选择与来源库表同名的匹配策略。 |
数据来源配置完成后,单击右下角下一步按钮,进行方案的数据目标端配置。
在目标配置界面中,完成数据源目标端设置与映射相关配置:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
数据源设置 | |
*数据源 | 下拉选择数据源管理中创建成功的目标端 LAS 数据源。若此前仍未创建相应 LAS 数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。 |
*自动分区设置 | 目前仅支持写入 LAS 分区表,您可单击编辑按钮,进行分区字段配置。 |
映射配置 | |
*刷新源表和目标表映射 | 单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作:
说明 表建立方式支持使用已有表和自动建表两种方式:
|
数据目标配置完成后,单击右下角下一步按钮,进行方案的同步规则配置。
各方案类型对应的同步规则配置项不同,您可根据实际情况进行配置:
全量同步
源端全量数据写入目标库表前,目前默认清理目标库表中的历史数据。后续方案更新敬请期待。
增量同步
在输入框中直接输入 where 后的语句,对同步的源端数据表进行过滤,且只需在框中填写 where 语句,无需填写where关键字。
此处可填写如:Timestamp_Info>='${DATE}' and Timestamp_Info<'${DATE+1}'
,根据业务时间采集每天的增量数据。
周期设置
对增量任务配置相应的周期任务执行属性:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
周期设置:配置周期性执行任务规则。 | |
*执行频率 | 选择周期任务执行频率,支持选择以下几种频率。
这里我们设定每天 0 点开始执行增量任务。 |
*失败重跑次数 | 任务失败后重试的次数。 |
*失败重跑间隔 | 任务失败后每次重试的时间间隔。 |
按需配置整库离线方案的同步规则完成后,单击右下角下一步按钮,进行方案的运行规则配置。
各方案类型对应的运行配置项不同,您可根据实际情况进行配置。
全量同步、增量同步:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
*离线集成任务资源组 | 选择全量同步任务所使用的资源组,下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:
|
*默认 Quota 数 | 一次性同步方案(包括一次性全量、一次性增量、一次性全量周期性增量),需设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quoto 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。 |
调度设置:
选择全量离线任务运行时所使用的调度资源组,主要用来支持离线全量任务执行时,将任务下发分配至独享数据集成资源组中运行,即离线集成任务需调度资源组和独享数据集成资源组来共同承载任务的运行。
目前调度资源组仅支持选择公共调度资源组。
通道设置:
配置任务通道相关参数:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
通道设置 | |
---|---|
*期望最大并发数 | 设置离线任务同步时,可以从源端并行读取或并行写入目标端的最大线程数。 |
脏数据设置 | 您可以在此通过以下两种方式设置脏数据的处理方式:
|
集成高级参数设置 | 打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入离线任务所需的高级参数。支持参数详见高级参数。 |
方案运行配置完成后,单击右下角提交方案按钮,进行方案的提交。
在弹窗中,勾选方案立即执行,并单击确定按钮,完成整库离线同步解决方案的创建。
方案创建完成后,进入到方案列表界面,便可查看方案的执行概况。
方案执行完成后,您可前往目的端 LAS 数据库中,验证 MySQL 全量数据的接收情况。
前往 DataLeap 控制台。
在概览界面,选择对应 DataLeap 项目,并单击数据开发按钮,进入任务开发界面。
在任务开发界面,左侧导航栏中,单击临时查询按钮,进入临时查询页面。
新建 LAS SQL 查询类型,输入以下查询语句:
说明
LAS 表分区格式,在 5.3 目标配置-分区配置时指定。
select * from las_schema.mysql_2_las WHERE ds=20230812;
查询结果如下:
登录 MySQL 数据库,继续往数据库中插入以下数据:
insert into mysql_2_las (Id, Name, Address, Event_Time, Price, Num_Big, Num_Float, Datetime_Info,Timestamp_Info, Tinytext_Info) values (6, '数据治理', '六盘水市安次荆门路i座_282720', 1679897962, 87496.4557384283, 59534049432157, -19505.969, '2023-03-27 14:24:22','2023-08-13 15:00:01', 'KKKKKKKKKK'); insert into mysql_2_las (Id, Name, Address, Event_Time, Price, Num_Big, Num_Float, Datetime_Info,Timestamp_Info, Tinytext_Info) values (7, '数据地图', '六盘水市安次荆门路i座_282720', 1679897962, 87496.4557384283, 59534049432157, -19505.969, '2023-03-27 14:24:22','2023-08-13 16:00:01', 'KKKKKKKKKK');
MySQL 数据插入执行完成后,天级周期调度任务为验证增量数据能通过周期调度方式采集进 LAS 表,需前往运维中心,发起任务数据回溯操作:
回到临时查询界面,输入以下增量数据查询语句:
select * from las_schema.mysql_2_las WHERE ds=20230813;
查询结果如下:
方案提交且数据验证完成后,后续可以前往运维中心 > 离线任务运维界面,对离线任务进行一系列运维操作,如对任务配置监控报警,关闭开启任务等操作,同时也可对离线整库方案进行整体运维。操作详见离线任务运维、10.2 解决方案运维。