离线整库同步方案,可周期性和一次性将整库表数据同步到目标端,方案类型包括离线整库同步(一次性全量)、离线整库同步(周期性全量)、离线整库同步(一次性增量)、离线整库同步(周期性增量)、离线整库同步(一次性全量周期性增量) 五种类型,您可根据实际场景进行方案配置,助力您将业务数据更高效、更便捷的同步至湖仓一体分析(LAS)、Hive 、StarRocks、Hudi 等数据库表中。
本文为您介绍离线整库同步的主流程概要及各方案类型的执行说明。
各方案类型说明:
方案类型 | 说明 | 方案生成的内容 |
---|---|---|
离线整库同步(一次性全量) | 配置离线整库一次性全量同步方案,方案将创建一个全量数据采集任务,只执行一次同步操作,将来源数据库表的所有数据,一次性全量同步至目标表中。 | 目标表+一次性全量离线同步任务 |
离线整库同步(周期性全量) | 配置离线整库周期性全量同步方案,可按照配置的周期调度属性执行任务,每次执行时都将来源数据源的所有数据,全量同步至目标中。 | 目标表+周期性的全量离线同步任务 |
离线整库同步(一次性增量) | 配置离线整库一次性增量同步方案,可按照任务指定的过滤条件,将来源数据中符合要求的增量数据一次性的同步至目标表中。 | 目标表+一次性增量离线同步任务 |
离线整库同步(周期性增量) | 配置离线整库周期性增量同步方案,可按照指定的过滤条件和周期调度属性,每次执行任务时仅将筛选过滤条件后的增量数据同步至目标中。 | 目标表+周期性的增量离线同步任务 |
离线整库同步(一次性全量周期性增量) | 离线整库一次性全量周期性增量同步方案,先将来源的所有数据全量同步至目标表;再按指定过滤条件和周期调度属性,后续周期性执行任务时仅同步筛选后的增量数据。 | 目标表+一次性全量离线同步任务+周期性增量离线同步任务 |
在配置离线整库同步解决方案前,您需在数据源管理界面中,配置来源端和目标端相应的数据源。详见配置数据源。
数据源配置操作准备完成后,您可开始进行离线整库同步方案配置:
进入配置界面后,您可按实际场景需求,完成方案的基本配置、映射配置、同步规则配置等流程。
整库离线同步方案基本配置步骤参数说明如下:
在基本信息中,配置解决方案的名称、方案类型、链路类型及保存路径位置。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
*链路类型 | 下拉选择来源和目标端数据源类型。
|
*方案类型选择 | 方案类型包括离线整库同步(一次性全量)、离线整库同步(周期性全量)、离线整库同步(一次性增量)、离线整库同步(周期性增量)、离线整库同步(一次性全量周期性增量) 五种类型。您可按需进行选择。 |
*方案名称 | 输入整库实时同步方案名称。只允许字母、数字、下划线、连字符,且仅允许输入 1~63 个字符。 说明 解决方案实际生成的任务名称定义:
|
方案描述 | 输入此方案的描述信息,方便后续维护管理。 |
*保存至 | 单击选择框,在弹窗中选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理。 |
在网络与资源配置中,配置数据来源/目标端数据源信息、集成资源组信息。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
*数据来源 | 下拉选择数据源管理中创建成功的数据源。
|
*数据目标 | 下拉选择数据源管理中创建成功的目标端数据源名称。 |
*离线/实时集成任务资源组(离线全量/实时增量) | 下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:
|
您可在资源组高级配置中,配置全量同步、增量同步、任务调度等运行配置信息。各方案类型对应的运行配置项不同,您可根据实际情况进行配置。
全量同步、增量同步:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
*离线集成任务资源组 | 默认选择在网络与资源配置中选择好的独享数据集成资源组。您也可下拉选择已在 DataLeap 项目控制台中绑定的其他独享数据集成资源组。 说明
|
*默认 Quota 数 | 一次性同步方案(包括一次性全量、一次性增量、一次性全量周期性增量),需设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quota 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。 说明 您也可按需勾选“每次提交执行时不询问”选项,建议您勾选。 |
调度设置:
选择离线任务运行时所使用的调度资源组,主要用来支持离线任务执行时,将任务下发分配至独享数据集成资源组中运行,即离线集成任务需调度资源组和独享数据集成资源组来共同承载任务的运行。
目前调度资源组支持选择公共调度资源组和独享调度资源组。
通道设置:
配置任务通道相关参数:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
通道设置 | |
---|---|
*期望最大并发数 | 设置离线任务同步时,可以从源端并行读取或并行写入目标端的最大线程数。 |
集成高级参数设置 | 打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入离线任务所需的高级参数。 说明 若在此处配置了解决方案数据筛选过滤条件相关的高级参数,则下方同步规则配置 > 增量同步配置的筛选条件将会失效,高级参数中的配置优先级更高,以高级参数中配置的过滤条件为准。 |
资源组高级配置完成后,单击配置窗口右上角关闭按钮,退出配置窗口,并检查基本配置所有参数无误后,单击右下角下一步按钮,进行方案的映射配置。
在映射配置界面中,您需完成数据来源库表与库表映射规则匹配策略:
进行来源库表的选择,其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
*数据源 | 默认展示在网络与资源配置中选择的数据来源名称。
|
*数据表 | 在左侧您可选择来源数据库表信息,以整库,或单表多表形式展开进行勾选需要同步的库表,取消勾选便可撤回已选中的库表。 说明
|
DataSail 实时/离线整库同步、实时分库分表同步解决方案,支持添加自定义 SQL 转换规则。它支持将源端采集的数据,对其进行各种数据转换操作,以满足各类业务场景需求。
数据转换可以应用于各种轻量级数据处理场景,例如:
单击配置详情按钮,展开数据转换配置界面。在数据转换配置界面,您可进行以下配置操作:
来源库表选择完成后,您便可进行后续的映射规则配置。
自动分区设置
目前支持设置写入 LAS、Hive 分区表或非分区表,分区字段,您可单击编辑按钮,进行自定义编辑名称,支持多级分区字段配置。
表类型
LAS 为目标表写入时,需选择目标表的类型,您可按需选择目标表类型为内表或 托管 Hive 表。
高级配置
展开高级配置按钮,进行使用已有表、高级参数等相关配置,其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
使用已有表配置 | 当目标表已存在,即下方“表建立方式”为“使用已有表”时,若此时源表与目标表中已有字段列不一致时,可通过列匹配规则,根据实际场景进行列映射规则设置,目前支持自动映射、同名取交映射、数量取交映射几种匹配规则配置:
|
源表和目标刷新配置 | 整库离线方案配置的源表和目标表数量较多时,您可设置单次拉取表数量,来分批进行表映射配置,默认单次拉取数量为 100 张表,您可根据实际情况进行调整,填写范围 1~2000。 |
高级参数配置 | 您可为同步解决方案配置全局的高级参数,以 key-value 的形式输入。如您可通过设置参数: |
库/表名映射配置
单击库/表名映射配置按钮,在弹窗中配置库表匹配策略,支持选择与来源库表同名和自定义方式匹配:
注意
CREATE TABLE demo.t3 (pk INT, v1 INT SUM) AGGREGATE KEY (pk) DISTRIBUTED BY hash (pk) PROPERTIES ('replication_num' = '1');
DDL 配置
在实时整库 CDC、分库分表、离线整库解决方案中,通常会遇到较多来源端新增表、新增列等 DDL 操作场景。
离线整库 PostgreSQL2Hive 通道,可根据实际业务场景,对来源端不同的 DDL 消息,在配置解决方案同步到目标端数据源时,可进行预设不同的处理策略。
刷新源表和目标表映射
库/表映射配置、DDL 等配置完成后,您可单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作:
说明
对于历史方案,操作方案编辑,如在原有方案中进行新增表、删除表操作时,单击刷新源表和目标表映射按钮,会弹窗表选择范围,您可按需选择刷新全量表映射或仅刷新新增表映射按钮进行表映射刷新。
在方案编辑过程中,若同时对库/表名映射、DDL 配置、使用已有表配置、高级参数配置、数据源等所有涉及表内容的修改时,系统将默认会刷新全量表映射,且不会弹出选择窗口。
操作项 | 说明 |
---|---|
筛选库表 | 单击漏斗按钮,您可输入源端与目标端的库表信息,进行筛选搜索。 |
同步主键 | 默认设置为源表中设置的主键字段信息,您可下拉进行选择源表中其余字段作为目标表的主键字段。 |
表建立方式 | 表建立方式分为使用已有表、自动建表和数据表不存在几种方式:
|
查看字段信息 | 可以查看来源表、目标表的字段名和其对应的字段类型等信息。在弹窗中,您也可对自动创建的目标表字段名、字段类型和字段描述信息,进行手动编辑调整。 |
配置 | 您可为同步解决方案配置多表映射高级参数,以 key-value 的形式输入。 |
移除 | 单击操作列中的更多 > 移除按钮,可将当前源端与目标端的映射删除。 |
重置 | 单击操作列中的更多 > 重置按钮,可重置源表与目标表的映射关系。 |
方案映射配置完成后,单击右下角下一步按钮,进行任务的同步规则配置。
各方案类型对应的同步规则配置项不同,您可根据实际情况进行配置:
全量同步
离线整库同步(一次性全量)、离线整库同步(周期性全量)、离线整库同步(一次性全量周期性增量)这三种方案需选择源端全量数据写入目标库表前,是否清理目标库表中的历史数据。
增量同步
离线整库同步(一次性增量)、离线整库同步(周期性增量)、离线整库同步(一次性全量周期性增量)这三种方案需配置增量筛选条件,您可在输入框中直接输入 where 后的语句,对同步的源端数据表进行过滤,且只需在框中填写 where 语句,无需填写 where 关键字。
如:date_time='${DATE}'
说明
若在资源组高级管理 > 集成高级参数设置中配置了解决方案数据筛选过滤条件的相关高级参数,则此处的增量同步筛选条件将会失效,高级参数中的配置优先级更高,以高级参数中配置的过滤条件为准。
周期设置
离线整库同步(周期性全量)、离线整库同步(周期性增量)、离线整库同步(一次性全量周期性增量)这三种方案,需配置相应的周期任务执行属性:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
周期设置:配置周期性执行任务规则。 | |
*执行频率 | 选择周期任务执行频率,支持选择以下几种频率。
|
*失败重跑次数 | 任务失败后重试的次数。 |
*失败重跑间隔 | 任务失败后每次重试的时间间隔。 |
按需配置整库离线方案的同步规则完成后,单击右下角提交方案按钮,进行方案的提交。
在弹窗中,勾选方案立即执行,并单击确定按钮,完成整库离线同步解决方案的创建。
目前,离线整库方案提供了“与来源库表同名”和“自定义”两种库表匹配策略。
在对应数据源下,选择源端需要同步的数据库表后,默认将源端数据库表,写入到目标端同名的数据库和同名数据表中。此策略下,在方案运行时,默认将在目标数据源内与来源数据库表中的同名对象进行匹配,若目标端不存在该数据表,则方案将会自动生成同名数据表。
说明
目前暂不支持自动创建同名数据库,您需先在目标端LAS创建好同名的数据库。
示例如下:
将源端数据库 DB1 下的 TableA 和 TableB 同步至 LAS,配置“与来源库表同名”策略后,任务运行时将默认在目标数据源内分别匹配 “DB1.TableA” 和 “DB1.TableB”。
若目标端 DB1 下不存在 TableA,则自动生成 TableA;已存在 TableB,则直接使用目标端的 TableB。
同时我们提供了三种对库表映射规则进行转换的配置方式。您在源端选中需要同步的数据库表后,将通过设置的库表映射规则,例如在源端数据库名或表名中加上统一固定的前缀或后缀,在方案执行时,实现写入到转换后的目标端数据库和数据表中,提升方案配置效率。
以下为您介绍三种自定义的库表映射规则:
映射规则 | 说明 |
---|---|
源库名和目标库名转换规则 | 配置源库名到目标库名的映射关系,如不配置此项,目标库将使用与来源库同名的库。
说明 批量添加方式,最多添加 1000 个转换规则。 |
源表名和目标表名转换规则 | 配置源表名到目标表名的映射关系,如不配置此项,目标表将使用与来源表同名的表。 说明 实时整库同步解决方案,支持设置多个表名转换规则和批量添加规则。 |
目标表名规则 | 仅离线整库同步方案可配置该规则。 说明 内置变量说明:
内置变量仅可在“目标表名规则”中使用, |
下面以 MySQL 和 PostgreSQL 数据源中的库表,映射转换到目标端 LAS 数据库表中为例,为您示例映射转换的匹配策略。
源端 MySQL 数据库中存在 DB1、DB2 两个数据库;DB1 下已有表 Table1、DB2 下已有表 Table2。
源端 | 源库名和目标库名转换规则 | 源表名和目标表名转换规则 | 目标表名规则 | 目标端转换结果 | |
---|---|---|---|---|---|
示例1 |
|
| Table1 -> Target_Table1 | 无 |
|
示例2 |
|
| 无 | 无 |
|
示例3 |
| 无 | Table1 -> Target_Table1 | test |
|
示例4 |
| DB1 -> Target_DB1 | Table1 -> Target_Table1 | ${db_name_src_transed}test${table_name_src_transed} |
|
源端 PostgreSQL 数据库中存在 DB 数据库,DB 下有 Schema1 和 Shcema2,Schema1 下已有表 Table1,Shcema2 下已有表 Table2。
源端 | 源库名和目标库名转换规则 | 源表名和目标表名转换规则 | 目标表名规则 | 转换结果 | |
---|---|---|---|---|---|
示例1 |
| 无 | 无 | 无 |
|
示例2 |
| DB -> Target_DB |
| 无 |
|
示例3 |
| DB -> Target_DB | Table1 -> Target_Table1 | ${db_name_src_transed}test${table_name_src_transed} |
|
示例4 |
| DB -> Target_DB | Table1 -> Target_Table1 | ${table_name_src_transed}_${schema_name_src_transed} |
|
方案创建完成后,进入到方案列表界面,便可查看方案的执行概况,同时您也可以在列表界面进行以下操作:
在创建众多的解决方案后,您可在方案列表界面通过搜索或筛选的方式进行快速定位方案。
在方案列表的运维列中,您可操作执行方案运维相关内容:
说明
启动中的解决方案不支持进行提交执行、方案编辑、方案删除操作。
运维操作 | 说明 |
---|---|
执行详情 | 单击运维操作列的执行详情按钮,进入解决方案执行详情界面,您可根据筛选任务业务日期,查看任务运行状态分布情况,单击“去查看详情”可前往运维中心,查看离线任务运行详情。 |
您也可在执行详情中查看方案的具体执行步骤,如目标表创建,全量批式任务的创建、发布、启动等一系列详情步骤。在具体步骤的右侧,您可单击单个步骤的执行详情按钮,您可进入查看各步骤中的任务操作状态、耗时及前往任务运维界面等操作。其中:
| |
提交执行 | 未在启动中的任务,您可单击运维操作列的提交执行按钮,将任务提交到运行状态,开启方案的运行。 |
方案查看 | 单击运维操作列更多中的方案查看按钮,可对当前解决方案的各个配置步骤进行查看。 |
方案编辑 | 单击运维操作列更多中的方案编辑按钮,可对当前解决方案的数据来源端、目标端、同步规则、运行配置步骤进行修改编辑,如您可在数据来源配置步骤中,为当前解决方案新增同步表或删除已选择的同步表等操作。 |
方案复制 | 单击运维操作列更多中的方案复制按钮,在弹窗中设置新方案的名称信息,单击确定按钮,完成复制。 |
方案删除 | 单击运维操作列更多中的方案删除按钮,将处于非运行中、非启动中的方案进行删除,当前仅删除解决方案本身,已生成的表和集成任务不会被删除。 |
运行监控 | 单击运维操作列更多中的运行监控按钮,为当前离线同步方案配置一次性全量、周期性增量任务的运行监控。 |
提交停止 | 单击运维操作列更多中的提交停止按钮,可将处于正常运行中的周期性任务进行停止操作。 |
数据回溯 | 单击运维操作列更多中的数据回溯按钮,您可按需指定回溯的业务日期,对目标表进行数据回溯,若当前目标表增加了列,对应的数据也会一并回溯。 说明 若写入的目标表为非分区表时,不能指定回溯业务日期,默认回溯当前日期前一天的日期。 |
操作历史 | 单击运维操作列更多中的操作历史按钮,您可查看当前同步方案的操作历史情况,如创建方案、重启方案、提交停止等操作,均会记录在操作历史中。您可单击操作列中的查看详情按钮,对历史版本的操作进行查看。 |
方案提交完成,任务处于运行中后,您也可以前往运维中心 > 离线任务运维界面,对离线任务进行一系列运维操作,如对任务配置监控报警,开启关闭任务等操作。运维操作详见离线任务运维。