You need to enable JavaScript to run this app.
导航

MySQL_to_LAS 离线整库

最近更新时间2023.08.18 17:27:51

首次发布时间2023.08.18 17:27:51

1 离线整库同步概述

离线整库同步方案,可周期性和一次性将整库表数据同步到目标端,方案类型包括离线整库同步(一次性全量)离线整库同步(周期性全量)离线整库同步(一次性增量)离线整库同步(周期性增量)离线整库同步(一次性全量周期性增量) 五种类型,您可根据实际场景进行方案配置,助力您将业务数据更高效、更便捷的同步至湖仓一体分析(LAS)中。
本文为您介绍通过离线整库同步(一次性全量周期性增量)实践方案,将源端 MySQL 数据,以一次性全量任务+周期性增量任务的方式,同步到 LAS 数据表中。

2 前置操作

  1. 已开通并创建 DataLeap 项目,创建的全量增量任务均会同步到该项目下。详见新建项目

  2. 已开通全域数据集成(DataSail)。详见服务开通

  3. 已开通湖仓一体分析服务(LAS)。详见服务开通

  4. 已创建合适资源规格的独享数据集成资源组,并将其绑定至创建成功的 DataLeap 项目下。购买操作详见资源组管理,项目绑定操作详见数据集成资源组

  5. 已完成数据源来源和目标端的准备,创建源端数据源 MySQL 实例,目标端 LAS Schema。详见创建 MySQL 实例LAS Schema 库管理

3 注意事项

  1. 同步解决方案同时支持选择的表数量目前上限为 1000 张,但建议先以 100 张以下表数量来试用。

  2. 目标数据库需要提前在湖仓一体分析服务(LAS)中先创建好,暂不支持在解决方案中自动创建。

  3. 目前表建立方式为选用已有表时,需要保证目标表 Schema 和源表 Schema 的表名称、字段名称和字段数量数量保持一致。

  4. 整库离线同步方案同步数据至 LAS 时,目前仅支持将数据写入分区表,暂不支持写入数据至非分区表。

4 离线整库同步方案

4.1 数据源配置

在配置离线整库同步解决方案前,您需在数据源管理界面中,配置来源端 MySQL 和目标端 LAS 相应的数据源。详见配置数据源

  • 独享数据集成资源组所在的 VPC 需要和源端 MySQL 数据库实例所在的 VPC 保持一致,火山引擎 RDS 数据库类型需要将 VPC 中的 IPv4 CIDR 地址,加入到 RDS 数据库的白名单下,保证资源组与数据源之间的网络互通;

  • 若资源组和 MySQL 数据源实例不在同一 VPC 环境时,您可通过公网或者通过专线形式进行互通。网络配置详见网络连通解决方案

  • LAS 数据源配置时,填写的 AKSK 信息,其对应的账号,需保证拥有对应 LAS Schema 库表的读写权限。LAS 权限详见权限管理

4.2 模拟数据准备

源端 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');
    

4.3 新建离线整库同步

数据源准备完成后,您可开始进行离线整库同步方案配置:

  1. 登录 DataSail 控制台

  2. 在左侧导航栏中选择数据同步方案,进入同步方案配置界面。

  3. 单击目录树中项目选择入口,选择已创建的 DataLeap 项目。

  4. 单击右上角新建数据同步解决方案按钮,下拉选择离线整库同步按钮,进入离线整库同步方案配置界面。按照以下配置,完成方案新建。

进入配置界面后,您可按实际场景需求,完成方案的基本配置、数据来源配置、数据缓存配置、数据目标配置、运行配置等五个流程配置。

5 方案配置

5.1 基本配置

基本配置参数说明如下表所示。
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项说明

*方案名称

输入整库离线同步方案名称:mysql2las全增量
只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需在127个字符以内。

方案描述输入此方案的描述信息,方便后续维护管理。
*保存至下拉选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理
*链路类型下拉选择来源 MySQL 类型和目标端 LAS 数据源类型。
*方案类型选择方案类型选择离线整库同步(一次性全量周期性增量) 类型。

方案基本配置完成后,单击右下角下一步按钮,进行方案的数据来源配置。

5.2 来源配置

在数据来源配置界面中,完成数据来源设置与库表映射规则匹配策略:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项说明
数据源设置
*数据源下拉选择数据源管理中创建成功的 MySQL 数据源。若此前仍未创建相应数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。

*数据表

在左侧您可选择来源数据库表信息:

  1. 以整库,或单表多表形式展开进行勾选。

    说明

    1. 数据库下没有表存在时,不支持勾选同步。

    2. 支持同时选择多个库。

  2. 单击中间alt 图标,将已选择的库表,添加至已选列表中,同理,您也可通过alt 图标,撤回已选中的表。

  3. 选择模拟数据中已创建的 MySQL 表:mysql_2_las

映射规则

*库表匹配策略

支持选择与来源库表同名或设定自定义方式匹配策略:

  • 与来源库表同名:来源库表选择完成后,解决方案默认将目标端的库表名称,与源端库表信息同名,若目标端不存在同名数据表时,将会自动创建。

    注意

    目前暂不支持自动创建同名数据库,您需先在目标端创建好同名的数据库。

  • 自定义:您也可通过自定义匹配方式,设置源端与目标库表的匹配策略,配置方式详见 5 库表映射规则说明

此处选择与来源库表同名的匹配策略。

数据来源配置完成后,单击右下角下一步按钮,进行方案的数据目标端配置。

5.3 目标配置

在目标配置界面中,完成数据源目标端设置与映射相关配置:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

配置项说明
数据源设置
*数据源下拉选择数据源管理中创建成功的目标端 LAS 数据源。若此前仍未创建相应 LAS 数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。
*自动分区设置目前仅支持写入 LAS 分区表,您可单击编辑按钮,进行分区字段配置。
映射配置

*刷新源表和目标表映射

单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作:

  • 查看字段信息:可以查看来源表、目标表的字段名和其对应的字段类型等信息。

  • 目标表选择:当自动映射的目标表不符合预期时,您可通过下拉选择的方式,选择符合要求的目标表。

说明

表建立方式支持使用已有表自动建表两种方式:

  • 使用已有表:当映射配置检查,目标端数据库中若存在相应库表映射规则转换后的表名时,则会直接使用已有表,来执行方案。已有表不支持选择非分区表

  • 自动建表:当映射配置检查,目标端数据库中若不存在相应库表映射规则转换后的表名时,将会通过任务,以映射规则定义的目标表名,自动创建目标表。

数据目标配置完成后,单击右下角下一步按钮,进行方案的同步规则配置。

5.4 同步规则配置

各方案类型对应的同步规则配置项不同,您可根据实际情况进行配置:

  • 全量同步

    源端全量数据写入目标库表前,目前默认清理目标库表中的历史数据。后续方案更新敬请期待。

  • 增量同步

    在输入框中直接输入 where 后的语句,对同步的源端数据表进行过滤,且只需在框中填写 where 语句,无需填写where关键字。
    此处可填写如:Timestamp_Info>='${DATE}' and Timestamp_Info<'${DATE+1}',根据业务时间采集每天的增量数据。

  • 周期设置

    对增量任务配置相应的周期任务执行属性:
    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项说明
    周期设置:配置周期性执行任务规则。

    *执行频率

    选择周期任务执行频率,支持选择以下几种频率。

    • 小时级:执行时间需要设置执行小时和执行时刻,执行小时支持多选。

    • 天级:执行时间需要设置具体的时间。

    • 周级:执行日期需要设置每周几来执行,支持多选,还需选择具体执行时间。

    • 月级:执行日期需要设置每月几号来执行,支持多选,还需选择具体执行时间。

    这里我们设定每天 0 点开始执行增量任务。

    *失败重跑次数任务失败后重试的次数。
    *失败重跑间隔任务失败后每次重试的时间间隔。

按需配置整库离线方案的同步规则完成后,单击右下角下一步按钮,进行方案的运行规则配置。

5.5 运行配置

各方案类型对应的运行配置项不同,您可根据实际情况进行配置。

  • 全量同步、增量同步

    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项说明

    *离线集成任务资源组

    选择全量同步任务所使用的资源组,下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:

    • 选择的资源组,需要确保能与源端、目标端数据源连通,您可单击右侧的连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。

    • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

    *默认 Quota 数一次性同步方案(包括一次性全量、一次性增量、一次性全量周期性增量),需设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quoto 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。
  • 调度设置
    选择全量离线任务运行时所使用的调度资源组,主要用来支持离线全量任务执行时,将任务下发分配至独享数据集成资源组中运行,即离线集成任务需调度资源组独享数据集成资源组来共同承载任务的运行。
    目前调度资源组仅支持选择公共调度资源组

  • 通道设置
    配置任务通道相关参数:
    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    通道设置

    *期望最大并发数

    设置离线任务同步时,可以从源端并行读取或并行写入目标端的最大线程数。
    并发数影响数据同步的效率,并发设置越高对应资源消耗也越多,由于资源原因或者任务本身特性等原因,实际执行时并发数可能小于等于设置的期望最大并发数。

    脏数据设置

    您可以在此通过以下两种方式设置脏数据的处理方式:

    • 勾选忽略所有脏数据,任务正常运行,脏数据不写入目标端。

    • 设置脏数据的最大容忍条数或占比情况,如果配置 0,则表示不允许脏数据存在,任务会运行失败退出。

    集成高级参数设置打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入离线任务所需的高级参数。支持参数详见高级参数

5.6 提交方案

方案运行配置完成后,单击右下角提交方案按钮,进行方案的提交。
在弹窗中,勾选方案立即执行,并单击确定按钮,完成整库离线同步解决方案的创建。

6 执行详情查看

方案创建完成后,进入到方案列表界面,便可查看方案的执行概况。

  1. 单击运维操作列的执行详情按钮,进入解决方案执行详情界面:

  2. 在执行详情界面,您需人工确认“周期性增量批任务冲突业务时间检查”流程中,一次性全量任务将会生成的业务时间,当周期性增量任务的调度实例尚未终止时,为避免存在覆写相同业务时间全量同步的结果,您可选择是否强制取消未终止运行的冲突业务时间增量实例,默认强制取消。

    因后续将验证增量数据的进入情况,所以此处指定全量数据写入业务时间为 2023-08-12 的分区中。

  3. 等待所有步骤执行完成,您可根据步骤完成情况,查看各个步骤的执行详情:

    如您可在“一次性全量批任务启动”步骤执行详情中,查看批式任务的运维与执行日志情况。批式任务运维操作详见离线任务运维

7 数据验证

7.1 全量数据验证

方案执行完成后,您可前往目的端 LAS 数据库中,验证 MySQL 全量数据的接收情况。

  1. 前往 DataLeap 控制台

  2. 概览界面,选择对应 DataLeap 项目,并单击数据开发按钮,进入任务开发界面。

  3. 任务开发界面,左侧导航栏中,单击临时查询按钮,进入临时查询页面。

  4. 新建 LAS SQL 查询类型,输入以下查询语句:

    说明

    LAS 表分区格式,在 5.3 目标配置-分区配置时指定。

    select * from las_schema.mysql_2_las WHERE ds=20230812;
    

    查询结果如下:

7.2 增量数据验证

  1. 登录 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');
    
  2. MySQL 数据插入执行完成后,天级周期调度任务为验证增量数据能通过周期调度方式采集进 LAS 表,需前往运维中心,发起任务数据回溯操作:

    1. 在“周期性增量批任务开启调度”流程中,单击执行详情 > 更多 > 去运维按钮,前往离线任务运维中心实例运维界面。

    2. 在左侧导航栏中,切换至任务运维界面,搜索相应的增量离线任务名称,并在操作列中,单击数据回溯按钮,发起任务回溯操作,并选定增量数据写入业务日期为 2023-08-13 分区中。
      回溯操作详见数据回溯

    3. 等待数据回溯任务实例执行完成。

  3. 回到临时查询界面,输入以下增量数据查询语句:

    select * from las_schema.mysql_2_las WHERE ds=20230813;
    

    查询结果如下:

8 后续步骤

方案提交且数据验证完成后,后续可以前往运维中心 > 离线任务运维界面,对离线任务进行一系列运维操作,如对任务配置监控报警,关闭开启任务等操作,同时也可对离线整库方案进行整体运维。操作详见离线任务运维离线整库同步方案运维