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

离线整库同步

最近更新时间2024.04.11 10:47:40

首次发布时间2023.08.14 10:14:48

1 离线整库同步概述

离线整库同步方案,可周期性和一次性将整库表数据同步到目标端,方案类型包括离线整库同步(一次性全量)离线整库同步(周期性全量)离线整库同步(一次性增量)离线整库同步(周期性增量)离线整库同步(一次性全量周期性增量) 五种类型,您可根据实际场景进行方案配置,助力您将业务数据更高效、更便捷的同步至湖仓一体分析(LAS)、Hive 、StarRocks 数据库表中。
本文为您介绍离线整库同步的主流程概要及各方案类型的执行说明。
图片
各方案类型说明:

方案类型

说明

方案生成的内容

离线整库同步(一次性全量)

配置离线整库一次性全量同步方案,方案将创建一个全量数据采集任务,只执行一次同步操作,将来源数据库表的所有数据,一次性全量同步至目标表中。

目标表+一次性全量离线同步任务

离线整库同步(周期性全量)

配置离线整库周期性全量同步方案,可按照配置的周期调度属性执行任务,每次执行时都将来源数据源的所有数据,全量同步至目标中。

目标表+周期性的全量离线同步任务

离线整库同步(一次性增量)

配置离线整库一次性增量同步方案,可按照任务指定的过滤条件,将来源数据中符合要求的增量数据一次性的同步至目标表中。

目标表+一次性增量离线同步任务

离线整库同步(周期性增量)

配置离线整库周期性增量同步方案,可按照指定的过滤条件和周期调度属性,每次执行任务时仅将筛选过滤条件后的增量数据同步至目标中。

目标表+周期性的增量离线同步任务

离线整库同步(一次性全量周期性增量)

离线整库一次性全量周期性增量同步方案,先将来源的所有数据全量同步至目标表;再按指定过滤条件和周期调度属性,后续周期性执行任务时仅同步筛选后的增量数据。

目标表+一次性全量离线同步任务+周期性增量离线同步任务

2 前置操作

  1. 已开通并创建 DataLeap 项目,创建的全量增量任务均会同步到该项目下。详见新建项目
  2. 已开通全域数据集成(DataSail)产品。详见服务开通
  3. 已创建合适资源规格的独享数据集成资源组,并将其绑定至创建成功的 DataLeap 项目下。购买操作详见资源组管理,项目绑定操作详见数据集成资源组
  4. 已完成来源和目标端的数据源准备,创建数据源操作详见配置数据源

3 注意事项

  1. 同步解决方案同时支持选择的表数量目前上限为 2000 张,但建议先以 100 张以下表数量来试用。
  2. 目标数据库需要提前在湖仓一体分析服务(LAS)、Hive、StarRocks 中先创建好,暂不支持在解决方案中自动创建。
  3. 目前表建立方式为选用已有表时,需要保证目标表 Schema 和源表 Schema 的表名称、字段名称和字段数量数量保持一致。

4 离线整库同步方案

4.1 数据源配置

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

  • 独享数据集成资源组所在的 VPC 需要和源端数据库实例所在的 VPC 保持一致,火山引擎 RDS 数据库类型需要将 VPC 中的 IPv4 CIDR 地址,加入到 RDS 数据库的白名单下,保证资源组与数据源之间的网络互通;
    图片
  • 若资源组和数据源实例不在同一 VPC 环境时,您可通过公网或者通过专线形式进行互通。网络配置详见网络连通解决方案

4.2 新建离线整库同步

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

  1. 登录 DataSail 控制台
  2. 在左侧导航栏中选择数据同步方案,进入同步方案配置界面。
  3. 单击目录树中项目选择入口,选择已创建的 DataLeap 项目。
    图片
  4. 单击右上角新建数据同步解决方案按钮,下拉选择离线整库同步按钮,进入离线整库同步方案配置界面。按照以下配置,完成方案新建。

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

4.3 基本配置

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

配置项

说明

基本信息

*方案名称

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

方案描述

输入此方案的描述信息,方便后续维护管理。

*保存至

下拉选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理

*链路类型

下拉选择来源和目标端数据源类型。

  • 来源支持类型:MySQL、PostgreSQL、SQLServer、Oracle
  • 目标支持类型:LAS、Hive、StarRocks

*方案类型选择

方案类型包括离线整库同步(一次性全量)、离线整库同步(周期性全量)、离线整库同步(一次性增量)、离线整库同步(周期性增量)离线整库同步(一次性全量周期性增量) 五种类型。您可按需进行选择。

网络与资源配置

*数据来源

下拉选择数据源管理中创建成功的源端数据源名称。

*数据目标

下拉选择数据源管理中创建成功的目标端数据源名称。

*离线/实时集成任务资源组(离线全量/实时增量)

下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:

  • 选择的资源组,需要确保能与源端、中间缓存数据源、目标端数据源连通,您可单击下方的立即连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。
  • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

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

4.4 来源配置

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

配置项

说明

数据源设置

*数据源

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

*数据表

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

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

    说明

    1. 数据库下没有表存在时,不支持勾选同步。
    2. 支持同时选择多个库。
    3. 单个解决方案,目前最多支持采集 2000 个表数量。
  2. 单击中间添加图标,将已选择的库表,添加至已选列表中,同理,您也可通过单击撤回图标,撤回已选中的表。
    图片

映射规则

*库表匹配策略

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

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

    注意

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

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

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

4.5 目标配置

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

配置项

说明

数据源设置

*数据源

下拉选择数据源管理中创建成功的目标端 LAS/Hive 数据源。若此前仍未创建相应 LAS/Hive 数据源,您可单击右侧数据源管理按钮,前往数据源管理界面,进行数据源的创建。

*自动分区设置

目前支持写入 LAS、Hive 分区表或非分区表,分区字段,您可单击编辑按钮,进行自定义编辑名称,支持多级分区字段配置。

*表类型

LAS 为目标表写入时,需选择目标表的类型,您可按需选择目标表类型为内表Managed Hive 表

映射配置

高级配置

使用已有表配置

当目标表已存在,即下方“表建立方式”为“使用已有表”时,若此时源表与目标表中已有字段列不一致时,可通过列匹配规则,根据实际场景进行列映射规则设置,目前支持自动映射、同名取交映射、数量取交映射几种匹配规则配置:

  • 自动映射:默认映射规则,字段列不一致时,提示目标字段检查异常。
  • 同名取交映射:字段列不一致时,仅同名映射匹配到的字段进行数据同步,未匹配到的字段不做同步。
  • 数量取交映射:源端表与目标端表字段列不一致时,在同名映射的基础上,以字段列数少的端为准,映射匹配到的字段进行同步,未匹配到的字段不做同步。

源表和目标表刷新配置

整库离线方案配置的源表和目标表数量较多时,您可设置单次拉取表数量,来分批进行表映射配置,默认单次拉取数量为 100 张表,您可根据实际情况进行调整,填写范围 1~2000。

高级参数配置

您可为同步解决方案配置多表映射高级参数,以 key-value 的形式输入。

*刷新源表和目标表映射

单击刷新源表和目标表映射按钮,自动拉取源表和目标表信息,等待拉取完成后,您便可以在列表中进行以下操作:

  • 查看字段信息:可以查看来源表、目标表的字段名和其对应的字段类型等信息。在弹窗中,您也可对目标表字段名称、字段类型和描述信息,进行手动编辑调整。
  • 配置:您可为同步解决方案配置多表映射高级参数,以 key-value 的形式输入。
  • 移除:单击操作列中的更多 > 移除按钮,可将当前源端与目标端的映射删除。
  • 重置:单击操作列中的更多 > 重置按钮,可重置源表与目标表的映射关系。

说明

表建立方式分为使用已有表、自动建表数据表不存在几种方式:

  • 使用已有表:当映射配置检查,目标端数据库中若存在相应库表映射规则转换后的表名时,则会直接使用已有表,来执行方案。已有表不支持选择非分区表
  • 自动建表:当映射配置检查,目标端数据库中若不存在相应库表映射规则转换后的表名时,将会通过任务,以映射规则定义的目标表名,自动创建目标表。
  • 数据表不存在:当目标端无法通过 DataSail 自动建表时,您需要进入目标端数据库中,手动创建数据表后,再继续配置解决方案。

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

4.6 DDL 策略配置

在实时整库 CDC、分库分表、离线整库解决方案中,通常会遇到较多来源端新增表、新增列等 DDL 操作场景。此时您可根据实际业务场景,对来源端不同的 DDL 消息,在配置解决方案同步到目标端数据源时,可进行预设不同的处理策略。
DDL 消息处理策略说明详见实时整库同步解决方案 - 4.7 DDL 策略配置

4.6 同步规则配置

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

  • 全量同步
    离线整库同步(一次性全量)、离线整库同步(周期性全量)、离线整库同步(一次性全量周期性增量)这三种方案需选择源端全量数据写入目标库表前,是否清理目标库表中的历史数据。目前全量同步方案默认仅支持写入前清理。后续方案更新敬请期待。

  • 增量同步
    离线整库同步(一次性增量)、离线整库同步(周期性增量)、离线整库同步(一次性全量周期性增量)这三种方案需配置增量筛选条件,您可在输入框中直接输入 where 后的语句,对同步的源端数据表进行过滤,且只需在框中填写 where 语句,无需填写 where 关键字。
    如:date_time='${DATE}'

  • 周期设置
    离线整库同步(周期性全量)、离线整库同步(周期性增量)、离线整库同步(一次性全量周期性增量)这三种方案,需配置相应的周期任务执行属性:
    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项

    说明

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

    *执行频率

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

    • 分钟级:执行时间需要设置分钟时间间隔和执行时刻。
    • 小时级:执行时间需要设置执行小时和执行时刻,执行小时支持多选。
    • 天级:执行时间需要设置具体的时间。
    • 周级:执行日期需要设置每周几来执行,支持多选,还需选择具体执行时间。
    • 月级:执行日期需要设置每月几号来执行,支持多选,还需选择具体执行时间。

    *失败重跑次数

    任务失败后重试的次数。

    *失败重跑间隔

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

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

4.7 运行配置

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

  • 全量同步、增量同步
    其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

    配置项

    说明

    *离线集成任务资源组

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

    • 选择的资源组,需要确保能与源端、目标端数据源连通,您可单击右侧的连通性测试按钮,进入测试窗口,单击连通性测试按钮,测试选择的资源组是否可以和两侧数据源连通成功。
    • 您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理

    *默认 Quota 数

    一次性同步方案(包括一次性全量、一次性增量、一次性全量周期性增量),需设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quota 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。

  • 调度设置
    选择离线任务运行时所使用的调度资源组,主要用来支持离线任务执行时,将任务下发分配至独享数据集成资源组中运行,即离线集成任务需调度资源组独享数据集成资源组来共同承载任务的运行。
    目前调度资源组支持选择公共调度资源组独享调度资源组

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

    通道设置

    *期望最大并发数

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

    脏数据设置

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

    • 勾选忽略所有脏数据,任务正常运行,脏数据不写入目标端。
    • 设置脏数据的最大容忍条数或占比情况,如果配置 0,则表示不允许脏数据存在,任务会运行失败退出。

    集成高级参数设置

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

4.8 提交方案

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

5 库表映射规则说明

目前,离线整库方案提供了“与来源库表同名”和“自定义”两种库表匹配策略。

5.1 与来源库表同名

在对应数据源下,选择源端需要同步的数据库表后,默认将源端数据库表,写入到目标端同名的数据库和同名数据表中。此策略下,在方案运行时,默认将在目标数据源内与来源数据库表中的同名对象进行匹配,若目标端不存在该数据表,则方案将会自动生成同名数据表。

说明

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

示例如下:
将源端数据库 DB1 下的 TableA 和 TableB 同步至 LAS,配置“与来源库表同名”策略后,任务运行时将默认在目标数据源内分别匹配 “DB1.TableA” 和 “DB1.TableB”。
若目标端 DB1 下不存在 TableA,则自动生成 TableA;已存在 TableB,则直接使用目标端的 TableB。

5.2 自定义

同时我们提供了三种对库表映射规则进行转换的配置方式。您在源端选中需要同步的数据库表后,将通过设置的库表映射规则,例如在源端数据库名或表名中加上统一固定的前缀或后缀,在方案执行时,实现写入到转换后的目标端数据库和数据表中,提升方案配置效率。
以下为您介绍三种自定义的库表映射规则:

映射规则

说明

源库名和目标库名转换规则

配置源库名到目标库名的映射关系,如不配置此项,目标库将使用与来源库同名的库。

  • 单击添加规则按钮,进行转换规则添加,您可以配置多条转换规则,源库名支持正则,不可使用变量,如果规则发生冲突,后一条规则会覆盖前一条规则。
  • 单击批量添加按钮,您可在弹窗中批量输入转换规则,批量添加方式说明如下:
    • 映射格式为:
      源名=目标名,源名在前,目标名在后,中间用等号连接,源名支持使用正则表达式或数组形式匹配。多个映射表达式,可使用“换行”作为分隔符。
    • 填写示例:
      sourcetablename.*?=sinktablename
      sourcetablename[0-9]=sinktablename
      sourcetablename1=sinktablename1
      sourcetablename2=sinktablename2
      

说明

  • 实时整库同步解决方案,暂不支持设置多条库名转换规则和批量添加规则。
  • 批量添加方式,最多添加 1000 个转换规则。

源表名和目标表名转换规则

配置源表名到目标表名的映射关系,如不配置此项,目标表将使用与来源表同名的表。
转换规则配置方式同上方库名转换规则一致。

说明

实时整库同步解决方案,支持设置多个表名转换规则和批量添加规则。

目标表名规则

支持设置单条目标表的规则,如果设置此规则,“源表名与目标表名转换规则”中转换结果将作为中间结果,可通过变量 ${table_name_src_transed} 在此条规则中使用。
例如 test_${table_name_src_transed}。

说明

内置变量说明:

  • 适用于类似 MySQL 这种“库-表”两层结构的数据源,映射到 LAS 这类“库-表”两层结构的数据源,定义了两个内置变量:
    • ${db_name_src_transed}:通过源库名与目标库名转换规则转换后的库名;
    • ${table_name_src_transed}:通过源表名与目标表名转换规则转换后的表名。
  • 对于 SQLServer、PostgreSQL 这类“库-Schema-表”三层结构的数据源,到 LAS 这类“库-表”两层结构的数据源,额外增加了内置变量:${schema_name_src_transed}。

内置变量仅可在“目标表名规则”中使用,

5.3 自定义库表匹配策略示例

下面以 MySQL 和 PostgreSQL 数据源中的库表,映射转换到目标端 LAS 数据库表中为例,为您示例映射转换的匹配策略。

  • 源端 MySQL 数据库中存在 DB1、DB2 两个数据库;DB1 下已有表 Table1、DB2 下已有表 Table2。

    源端

    源库名和目标库名转换规则

    源表名和目标表名转换规则

    目标表名规则

    目标端转换结果

    示例1

    • DB1.Table1
    • DB2.Table2
    • DB1 -> Target_DB1
    • DB2 -> Target_DB2

    Table1 -> Target_Table1

    • Target_DB1.Target_Table1
    • Target_DB2.Table2

    示例2

    • DB1.Table1
    • DB2.Table2
    • DB1 -> Target_DB1
    • DB1 -> Target_DB1_1

    • Target_DB1_1.Table1
    • DB2.Table2

    示例3

    • DB1.Table1
    • DB2.Table2

    Table1 -> Target_Table1

    test

    • DB1.test
    • DB2.test

    示例4

    • DB1.Table1
    • DB2.Table2

    DB1 -> Target_DB1

    Table1 -> Target_Table1

    ${db_name_src_transed}test${table_name_src_transed}

    • Target_DB1.Target_DB1_test_Target_Table1
    • DB2.DB2_test_Table2
  • 源端 PostgreSQL 数据库中存在 DB 数据库,DB 下有 Schema1 和 Shcema2,Schema1 下已有表 Table1,Shcema2 下已有表 Table2。

    源端

    源库名和目标库名转换规则

    源表名和目标表名转换规则

    目标表名规则

    转换结果

    示例1

    • DB.Schema1.Table1
    • DB.Shcema2.Table2

    • DB.Table1
    • DB.Table2

    示例2

    • DB.Schema1.Table1
    • DB.Shcema2.Table2

    DB -> Target_DB

    • Table1 -> Target_Table1
    • Table2 -> Target_Table2

    • Target_DB.Target_Table1
    • Target_DB.Target_Table2

    示例3

    • DB.Schema1.Table1
    • DB.Shcema2.Table2

    DB -> Target_DB

    Table1 -> Target_Table1

    ${db_name_src_transed}test${table_name_src_transed}

    • Target_DB.Target_DB_test_Target_Table1
    • Target_DB.Target_DB_test_Table2

    示例4

    • DB.Schema1.Table1
    • DB.Shcema2.Table2

    DB -> Target_DB

    Table1 -> Target_Table1

    ${table_name_src_transed}_${schema_name_src_transed}

    • Target_DB.Target_Table1_schema1
    • Target_DB.Table2_schema2

6 离线整库同步方案管理

方案创建完成后,进入到方案列表界面,便可查看方案的执行概况,同时您也可以在列表界面进行以下操作:

6.1 解决方案筛选

在创建众多的解决方案后,您可在方案列表界面通过搜索或筛选的方式进行快速定位方案。

  • 您可通过方案名称、方案 ID、数据来源名称、数据目标名称等信息,输入搜索的方式进行筛选。
  • 您也可通过下拉选择方案操作状态、方案类型、数据来源名称、数据目标类型、创建人等选项进行任务的定位操作。

6.2 解决方案运维

在方案列表的运维列中,您可操作执行方案运维相关内容:

说明

启动中的解决方案不支持进行提交执行、方案编辑、方案删除操作。

运维操作

说明

执行详情

单击运维操作列的执行详情按钮,进入解决方案执行详情界面,查看方案的具体执行步骤,如目标表创建,全量批式任务的创建、发布、启动等一系列详情步骤。
在具体步骤的右侧,您可单击单个步骤的执行详情按钮,您可进入查看各步骤中的任务操作状态、耗时及前往任务运维界面等操作。

提交执行

未在启动中的任务,您可单击运维操作列的提交执行按钮,将任务提交到运行状态,开启方案的运行。

方案查看

单击运维操作列更多中的方案查看按钮,可对当前解决方案的各个配置步骤进行查看。

方案编辑

单击运维操作列更多中的方案编辑按钮,可对当前解决方案的数据来源端、目标端、同步规则、运行配置步骤进行修改编辑,如您可在数据来源配置步骤中,为当前解决方案新增同步表或删除已选择的同步表等操作。

方案复制

单击运维操作列更多中的方案复制按钮,在弹窗中设置新方案的名称信息,单击确定按钮,完成复制。

方案删除

单击运维操作列更多中的方案删除按钮,将处于非运行中、非启动中的方案进行删除,当前仅删除解决方案本身,已生成的表和集成任务不会被删除。

运行监控

单击运维操作列更多中的运行监控按钮,为当前离线同步方案配置一次性全量、周期性增量任务的运行监控。
在运行监控界面,单击新增规则按钮,平台自动为您创建一条监控规则,您可在操作列中,单击配置监控按钮,前往运维中心,查看监控详情。更多运行监控配置操作详见离线监控规则实时监控规则

提交停止

单击运维操作列更多中的提交停止按钮,可将处于正常运行中的周期性任务进行停止操作。

数据回溯

单击运维操作列更多中的数据回溯按钮,您可按需指定回溯的业务日期,对目标表进行数据回溯,若当前目标表增加了列,对应的数据也会一并回溯。

说明

若写入的目标表为非分区表时,不能指定回溯业务日期,默认回溯当前日期前一天的日期。

操作历史

单击运维操作列更多中的操作历史按钮,您可查看当前同步方案的操作历史情况,如创建方案、重启方案、提交停止等操作,均会记录在操作历史中。您可单击操作列中的查看详情按钮,对历史版本的操作进行查看。

7 后续步骤

方案提交完成,任务处于运行中后,您也可以前往运维中心 > 离线任务运维界面,对离线任务进行一系列运维操作,如对任务配置监控报警,开启关闭任务等操作。运维操作详见离线任务运维