最近更新时间:2024.04.11 10:47:40
首次发布时间:2023.09.28 18:11:11
CDC(Change Data Capture) 是变更数据获取的简称。可以基于增量日志,以极低的侵入性来完成增量数据捕获的工作。
核心思想是,监测并捕获数据库的变动,包括数据或数据表的插入、更新以及删除等,将这些变更按发生的顺序完整记录下来,可以直接写入到消息中间件中以供其他服务进行订阅及消费,也可以直接对接其他数据源做业务或者数据分析&应用。
与批量同步相比,变更数据的捕获通常具有以下三项基本优势:
实时同步解决方案目前支持以下两种方案:
方案类型 | 说明 |
---|---|
实时分库分表方案概述 |
|
实时整库方案概述 |
|
本文将为您介绍通过 DataSail 创建分库分表实时同步解决方案,实现多个数据库实例下的多个相同 Schema 分表,同步到目标端数据源的一个表中。
在配置实时分库分表同步解决方案前,您需在数据源管理界面中,配置来源端和目标端相应的数据源。详见配置数据源。
数据源配置操作准备完成后,您可开始进行实时分库分表同步方案配置:
基本配置参数说明如下表所示。
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
基本信息 | |
*方案名称 | 输入实时分库分表同步方案名称。只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需在127个字符以内。 |
方案描述 | 输入此方案的描述信息,方便后续维护管理。 |
*保存至 | 下拉选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理。 |
*链路类型 | 下拉选择来源和目标端数据源类型。
|
网络与资源配置 | |
数据来源 | 在数据来源框中,选择数据源管理中创建成功的数据源,支持选择多个。 说明 目前对于 JDBC 类火山引擎数据源类型,您可通过批量新增数据源的方式,进行批量创建,单次最多创建 200 个数据源:
|
数据缓存 | 选择同步解决方案是否需要通过数据缓存的方式来采集数据:
|
数据目标 | 在数据目标框中,选择数据源管理中创建成功的数据源。 |
离线/实时集成任务资源组 | 下拉选择在数据源管理界面中,创建来源、中间缓存、目标端数据源时,测试连通性能够成功的独享集成资源组。选择资源组后,您可进行以下操作:
若此前还未创建独享集成资源组,您也可以单击资源组管理按钮,前往资源组管理界面进行资源组的查看或新建等操作,详见资源组管理。 |
方案基本配置完成后,单击右下角下一步按钮,进行方案的数据来源配置。
在数据来源配置界面中,完成数据来源的选择,数据源库表名称支持通过正则匹配。
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
数据源设置 | |
*数据源名称 | 展现基本配置中选择的数据源,您也可以在此处再新增其余需要采集的数据源。 |
*源库、源 Schema、源表选择限定条件 | 您可通过设置源库、源 Schema、源表的限定条件,来获取源表信息。
|
表 | 单击获取源表/获取源集合按钮,平台根据源库、源表/集合限定条件的设置,自动加载符合条件的表/集合。 注意 选择的多个库表,需保证其 Schema 信息一致(包括字段名称、字段类型)。 |
映射规则 | |
*库表匹配策略 | 支持选择与来源库表同名和自定义方式匹配:
|
数据来源配置完成后,单击右下角下一步按钮,进行方案的数据缓存配置。
使用缓存,可对同步任务进行缓冲,在性能和稳定性上有所提升,适合对稳定性要求高以及数据量大的场景,但需额外增加缓存数据源及相应成本,请按需配置。
实时分库分表同步解决方案,目前支持“增加缓存”、“无需缓存,直接同步”这两种缓存配置方式:
可通过使用中间缓存来采集源端数据,增加缓存需要绑定数据来源对应的 CDC 采集数据进入的 MQ。
若还未创建采集方案,您需到解决方案-实时数据采集界面,进行方案创建。详见实时数据采集方案。这种方式需要额外配置 Kafka 数据源、DataSail(内置 Topic) 数据源、BMQ 数据源。
说明
Kafka、BMQ 数据源类型,也可通过创建相应的 CDC 数据订阅采集任务,将源端 MySQL 中的数据,通过数据库传输服务中数据订阅方式,实时采集到 Kafka 实例中。在数据来源配置时绑定对应的 CDC 采集数据进入的 Kafka。数据订阅操作详见数据库传输服务。
说明
实时采集解决方案支持绑定多个。
无需缓存方式,可通过直接采集 MySQL Binlog 日志,进行数据实时读取。
说明
火山引擎中 RDS 云数据库已默认开启 Binlog 协议,若源端为其他云数据库或自建数据库,您需确认数据库是否已开启 Binlog。
确认数据缓存同步方式后,单击右下角下一步按钮,进入数据目标设置。
在数据目标配置界面中,完成数据源目标端设置与映射相关配置。
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 | |
---|---|---|
数据源设置 | ||
*数据源 | 下拉选择数据源管理中创建成功的目标端数据源。目前支持写入 LAS、Doris、StarRocks、Elasticsearch、ByteHouse 云数仓版、ByteHouse 企业版数据源中。 | |
*自动分区设置 | 目前通过 DataSail 解决方案自动建表时,LAS、Doris、StarRocks、ByteHouse CDW、ByteHouse CE 数据源仅支持写入非分区表。 | |
映射配置 | ||
高级配置 | 使用已有表配置 | 当目标表已存在,即下方“表建立方式”为“使用已有表”时,若此时源表与目标表中已有字段列不一致时,可通过列匹配规则,根据实际场景进行列映射规则设置,目前支持自动映射、同名取交映射两种匹配规则配置:
|
高级参数配置 | 您可为同步解决方案配置多表映射高级参数,以 key-value 的形式输入。 | |
*刷新源表和目标表映射 | 单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作: | |
逻辑表名 | 单击逻辑表名信息,可查看所选的源库表信息。 | |
分片键、分表键 | 设置分库分表中分片字段和分表键字段信息。 | |
筛选库表 | 单击漏斗按钮,您可输入源端与目标端的库表信息,进行筛选搜索。 | |
排序策略 | 排序策略将影响实时增量任务,若无排序字段,可能会出现上游乱序导致下游数据源错误,建议增加排序策略。
| |
表建立方式 | 表建立方式分为使用已有表、自动建表和数据表不存在几种方式:
| |
全量同步 |
| |
清表策略 | 您可根据实际情况,选择是否开启清表策略,开启表示在数据写入目标表前,会清空原有目标表中的数据,通常是为了使任务重跑时支持幂等操作。 | |
查看字段信息 | 可以查看来源表、目标表的字段名和其对应的字段类型等信息。在弹窗中,您也可对自动创建的目标表字段类型和字段描述信息,进行手动编辑调整。 | |
配置 | 您可为同步解决方案配置多表映射高级参数,以 key-value 的形式输入。 | |
移除 | 单击操作列中的更多 > 移除按钮,可将当前源端与目标端的映射删除。 | |
重置 | 单击操作列中的更多 > 重置按钮,可重置源表与目标表的映射关系。 |
说明
当目标表数量较多时,您可勾选多个表后,批量对目标表进行全量同步设置、清表策略设置或移除等操作。
数据目标配置完成后,单击右下角下一步按钮,进行方案运行参数配置。
在实时整库 CDC、分库分表、离线整库解决方案中,通常会遇到较多来源端新增表、新增列等 DDL 操作场景。此时您可根据实际业务场景,对来源端不同的 DDL 消息,在配置解决方案同步到目标端数据源时,可进行预设不同的处理策略。
DDL 消息处理策略说明详见实时整库同步解决方案 - 4.7 DDL 策略配置
离线全量同步
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
*离线集成任务资源组 | 下拉选择 DataLeap 项目控制台中已绑定且处于健康状态的独享数据集成资源组:
|
*默认 Quota 数 | 设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quota 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。 |
*期望最大并发数 | 设置离线任务同步时,可以从源端并行读取或并行写入目标端的最大线程数。 |
脏数据设置 | 设置脏数据处理方式,当任务中字段映射没有匹配到的数据,如格式非法,或同步过程中源端数据进入目标端时发生了异常。例如:源端是 String 类型的数据写到 INT 类型的目标字段中,因为类型转换不合理而无法写入的数据。 您可以在此通过以下两种方式设置脏数据的处理方式:
|
集成高级参数设置 | 打开高级参数输入按钮,根据实际业务要求,以 Key/Value 形式,在编辑框中输入离线任务所需的高级参数。支持参数详见各数据源中的高级参数介绍。 |
实时增量同步
设置解决方案中实时增量任务的运行参数情况。
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
---|---|
*实时集成任务资源组 | 下拉选择 DataLeap 项目控制台中已绑定且处于健康状态的独享数据集成资源组:
|
*资源设置 | 可通过自定义和默认两种设置方式,进行实时任务运行资源的设定,如单TaskManager CPU数量、单TaskManager内存大小、JobManager CPU数量等。 说明 默认设置中,各运行资源设置如下:
|
集成高级参数设置 | 打开高级参数输入按钮,根据实际业务要求,以 Key/Value 形式,在编辑框中输入实时任务所需的高级参数。支持参数详见各数据源中的高级参数介绍。 |
Flink 运行参数设置 | 支持输入 Flink 相关的动态参数和执行参数,具体参数设置详见 Flink 官方文档。 |
调度设置
离线全量任务还需要任务调度资源组,来支持任务下发分配至独享数据集成资源组中运行,目前调度资源组支持选择公共调度资源组和独享调度资源组。
提交方案
方案运行配置完成后,单击右下角提交方案按钮,进行方案的提交,在弹窗中,您可根据实际情况勾选方案是否立即执行,并单击确定按钮,完成实时数据同步解决方案的创建。
方案创建完成后,进入到方案列表界面,便可查看方案的执行概况,同时您也可以在列表界面进行以下操作:
在创建众多的解决方案后,您可在方案列表界面通过搜索或筛选的方式进行快速定位方案。
在方案列表的运维列中,您可操作执行方案运维相关内容:
说明
启动中的解决方案不支持进行提交执行、方案编辑、方案删除操作。
运维操作 | 说明 |
---|---|
执行详情 |
|
提交执行 | 未在启动中的任务,您可单击运维操作列的提交执行按钮,将任务提交到运行状态,开启增量流任务的运行。
|
方案查看 | 单击运维操作列更多中的方案查看按钮,可对当前解决方案的各个配置步骤进行查看。 |
方案编辑 | 单击运维操作列更多中的方案编辑按钮,可对当前解决方案的方案名称、数据来源端、目标端、DDL 策略配置、运行配置步骤进行修改编辑,如您可在数据来源配置步骤中,为当前解决方案新增同步表或删除已选择的同步表,或者调整独享集成资源组等操作。 |
方案删除 | 单击运维操作列更多中的方案删除按钮,将处于非运行中、非启动中的方案进行删除,当前仅删除解决方案本身,已生成的表和集成任务不会被删除。 |
运行监控 | 单击运维操作列更多中的运行监控按钮,为当前实时分库分表同步方案配置一次性全量、实时增量任务的运行监控。 |
强制重启 | 单击运维操作列更多中的强制重启按钮,将之前创建的解决方案再次提交执行,区别于提交执行,强制重启会位点初始化、全量批任务清理、重启全量批任务等操作。 |
提交停止 | 单击运维操作列更多中的提交停止按钮,可将处于正常运行中的增量流任务进行停止操作。 |
操作历史 | 单击运维操作列更多中的操作历史按钮,您可查看当前同步方案的操作历史情况,如创建方案、重启方案、提交停止等操作,均会记录在操作历史中。您可单击操作列中的查看详情按钮,对历史版本的操作进行查看。 |
其余关于 DataSail 更多内容,详见全域数据集成-火山引擎、实时整库同步 等。