一键实时整库同步方案支持全增量一体化同步,本实践中,先将 MySQL 源端全量数据通过离线任务同步方式迁移,然后再通过实时同步增量任务,将增量数据采集至目标端 ByteHouse 云数仓版(ByteHouse CDW)数据库表中。
您也可以选择单独进行实时增量数据同步,该场景适用于您已经通过其他方式将全量数据同步至 ByteHouse CDW,本文为您介绍如何创建一键实时同步,将全量和增量数据同步至 ByteHouse CDW 数据库中。
在配置实时整库同步解决方案前,您需在数据源管理界面中,配置来源端 MySQL 数据源。详见 MySQL 数据源配置。
注意
MySQL 数据源将直接采集 MySQL Binlog 日志,进行数据实时读取,您需保障数据库已开启 Binlog 协议,且数据源配置信息内的用户名,需要有 Binlog 的 REPLICATION 操作权限。权限详见配置 MySQL 数据源。
在配置实时整库同步解决方案前,您需在数据源管理界面中,配置目标端 ByteHouse CDW数据源。详见 ByteHouse云数仓版 数据源配置。
注意
ByteHouse CDW 数据源在配置解决方案时必须配置 API token 信息。
ByteHouse 云数仓版网络配置方式
网络配置方式 | 操作方式 |
|---|---|
火山引擎内网 | ByteHouse CDW 同时也支持通过 VPC 内网形式访问连接,主账号需进入 ByteHouse CDW 租户管理界面绑定相关网络信息。操作流程如下:
更多绑定操作,详见设置网络信息。 |
数据源配置操作准备完成后,您可开始进行实时整库同步方案配置:
登录 DataSail 控制台。
在左侧导航栏中选择数据同步方案,进入同步方案配置界面。
单击目录树中项目选择入口,选择已创建的 DataLeap 项目。
单击右上角新建数据同步解决方案按钮,下拉选择实时整库同步按钮,进入整库实时同步方案配置界面。按照以下配置,完成方案新建。
解决方案基本配置步骤参数说明如下。
基本配置参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
|---|---|
*链路类型 | 下拉选择来源和目标端数据源类型,此处来源类型选择 MySQL,目标数据源类型选择 ByteHouse云数仓版。 |
*方案名称 | 输入整库实时同步方案名称,如 MySQL2BHCDW。只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需在127个字符以内。 |
方案描述 | 输入此方案的描述信息,方便后续维护管理。 |
*保存至 | 单击选择框,在弹窗中选择方案保存路径,此路径为数据开发项目中的任务路径。创建方式详见任务目录树管理。 |
在网络与资源配置中,配置数据来源/目标端数据源信息、集成资源组信息。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
|---|---|
*数据来源 | 下拉选择数据源管理中创建成功的数据源。
|
数据缓存 | 在实时同步解决方案执行过程中,您可按需选择采集数据时是否使用缓存配置方式:
本实践中通过直连方式进行读取,不使用缓存。 |
*数据目标 | 下拉选择数据源管理中创建成功的目标端数据源名称。 |
*离线/实时集成任务资源组(离线全量/实时增量) | 下拉选择 DataLeap 项目控制台中已绑定的独享数据集成资源组:
|
您可在资源组高级配置中,配置离线全量同步、实时增量同步、任务调度等运行配置信息。
离线全量同步
设置解决方案中离线全量任务的运行参数情况。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
|---|---|
*离线集成任务资源组 | 默认选择在网络与资源配置中选择好的独享数据集成资源组。您也可下拉选择已在 DataLeap 项目控制台中绑定的其他独享数据集成资源组。 |
*默认 Quota 数 | 设置可同时提交执行的集成任务数量,可根据独享集成资源组规格进行配置,如资源组的大小为 40CU,则 Quota 配置需必须小于 20(40/2),否则会因资源问题导致任务执行时异常。 说明 您也可按需勾选“每次提交执行时不询问”选项,建议您勾选。 |
*期望最大并发数 | 设置离线任务同步时,可以从源端并行读取或并行写入目标端的最大线程数。 |
集成高级参数设置 | 打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入离线任务所需的高级参数。可参考下方任务通用高级参数表,更多参数详见高级参数。 |
集成高级参数配置示例:
分类 | 参数名 | 默认值 | 说明 |
|---|---|---|---|
MySQL | job.reader.reader_fetch_size | 10000 | JDBC 方式读,每次拉取的数据条数。 |
job.reader.query_timeout_seconds | 300 | JDBC 方式读取数据,设定读取超时时间,单位秒。 | |
job.reader.connection_parameters | 无 | JDBC 参数 ,问号后全部参数 | |
job.reader.shard_split_mode | accurate | JDBC 连接分片参数,指定计算分片的模式:
| |
ByteHouse CDW | job.writer.flush_interval | 60000 | 写入 buffer 刷新时间。默认 60000 毫秒。 |
job.writer.buffer_count | 8192 | 写入 buffer 记录条数。默认 8192。 | |
job.writer.query_timeout | 30000 | 设定查询超时退出时间,默认 30000 毫秒。 | |
job.writer.skip_delete_task | false | 写入 ByteHouse CDW 是通过 导入任务方式,默认任务执行完,删除导入任务; | |
job.writer.cfs_write_batch_size | 4096/8192 |
| |
job.writer.virtual_warehouse | 无 | 可通过该高级参数,指定 ByteHouse CDW 中任务导入所需的计算组信息。计算组操作详见 ByteHouse CDW 计算组。 | |
任务通用 | job.common.is_use_batch_mode | true | 是否batch模式
|
job.reader.reader_parallelism_num | 读并发 | ||
job.writer.writer_parallelism_num | 写并发 | ||
Flink 资源参数 | job.common.flink_tm_vcores | 1.0 | 每个 Task Manager 使用的 CPU 核数。 |
job.common.slots_per_tm | 2 | 每个 Task Manager 默认 slot 的数量。 | |
job.common.flink_tm_slot_memory | 2048 | 每个 Task Manager 中的各个 slot 的内存大小,单位为 MB。 | |
job.common.flink_tm_task_off_heap_memory | 0.125 | 每个 Task Manager 的堆外内存占总内存的比例。 | |
job.common.flink_tm_managed_memory_ratio | 0.2 | 每个 Task Manager 的托管内存占总内存的比例。 | |
job.common.flink_tm_network_max | 2g | 每个 Task Manager 的网络内存的最大值,单位为 GB。 | |
job.common.flink_jm_vcores | 1 | Flink Job Manager 的 CPU 核数。 | |
job.common.flink_jm_memory | 4096 | Flink Job Manager 的总内存大小,单位为 MB。 | |
job.common.flink_jm_off_heap_memory | 0.125 | Flink Job Manager 的堆外内存占总内存的比例。 |
实时增量同步
设置解决方案中实时增量任务的运行参数情况。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
|---|---|
*实时集成任务资源组 | 默认选择在网络与资源配置中选择好的独享数据集成资源组。您也可下拉选择已在 DataLeap 项目控制台中绑定的其他独享数据集成资源组。 |
*资源设置 | 实时任务的资源设置支持默认和自定义两种配置方式,可设定单 TaskManager CPU 数量、单 TaskManager 内存大小、JobManager CPU 数量等参数。 说明 默认设置中,各运行资源设置如下:
|
*镜像版本 | 全域数据集成产品版本更新速度相对较快,解决方案中的实时增量任务需配置流式镜像版本号,建议您下拉选择当前推荐标签的镜像版本号。 |
集成高级参数设置 | 打开高级参数输入按钮,根据实际业务要求,以 Key\Value 形式,在编辑框中输入实时任务所需的高级参数。可参考下方集成高级参数表,更多支持参数详见高级参数。 |
Flink 运行参数设置 | 支持输入 Flink 相关的动态参数和执行参数,可参考下方 Flink 运行参数表,更多具体参数设置详见 Flink 官方文档。 |
实时增量同步高级参数示例
分类 | 参数名 | 默认值 | 说明 |
|---|---|---|---|
Binlog | job.reader.poll_interval_ms | 500 | 默认 500 毫秒 |
job.reader.debezium | 配置示例:{"database.history.skip.unparseable.ddl": "true","skipped.operations":"d,u"}
| ||
job.common.checkpoint_interval | 900000 | 设定 Checkpoint 刷新时间 |
Flink 运行参数示例:
参数名称 | 默认值 | 说明 |
|---|---|---|
taskmanager.memory.managed.size | 每个 Task Manager 的托管内存占总内存大小 | |
taskmanager.memory.network.fraction | 每个 Task Manager 的网络内存的占比 |
调度设置
离线全量任务还需要任务调度资源组,来支持任务下发分配至独享数据集成资源组中运行,目前调度资源组支持选择公共调度资源组和独享调度资源组管理。
资源组高级配置完成后,单击配置窗口右上角关闭按钮,退出配置窗口,并检查基本配置所有参数无误后,单击右下角下一步按钮,进行方案的数据缓存配置。
在映射配置界面中,您需完成数据来源库表与库表映射规则匹配策略:
进行来源库表的选择,其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
|---|---|
*数据源 | 默认展示在网络与资源配置中选择的数据来源名称。 |
*表选择模式 | 支持通过指定表或正则方式进行表的选择:
|
指定表模式 | |
*数据表 | 指定表模式选择时,在左侧您可选择来源数据库表信息,以整库,或单表多表形式展开进行勾选需要同步的库表,取消勾选便可撤回已选中的库表。 说明
|
正则模式 | |
*源库、源表选择限定条件 | 正则模式选择时,您可通过设置源库、源 Schema、源表的限定条件,来获取源表信息。
|
表 | 正则模式选择时,单击获取源表按钮,平台根据源库、源表限定条件的设置,自动加载符合条件的表。 注意
|
DataSail 实时整库同步解决方案,支持添加自定义 SQL 转换规则。它支持将源端采集的数据,对其进行各种数据转换操作,以满足各类业务场景需求。您可按实际业务需求进行配置,操作详见8.2 数据转换配置。
来源库表选择完成后,您便可进行后续的映射规则配置。
说明
在进行源表和目标库表映射时,您可以单击右侧的全屏显示按钮,从而全屏配置表映射,以便更清晰地查看源表与目标表的映射关系信息。
展开高级配置按钮,进行解决方案 DML、使用已有表、高级参数等相关配置,其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
配置项 | 说明 |
|---|---|
DML 配置 | 解决方案执行过程中,支持同步 DML 事件类型,支持插入、更新、删除事件类型。 说明
|
使用已有表配置 | 当目标表已存在,即下方“表建立方式”为“使用已有表”时,若此时源表与目标表中已有字段列不一致时,可通过列匹配规则,根据实际场景进行列映射规则设置,目前支持自动映射、同名取交映射两种匹配规则配置:
说明 当解决方案中配置了上述数据转换配置时,使用已有表配置的列匹配规则默认仅支持选择同名取交映射,暂不支持选择其他匹配规则。 |
源表和目标刷新配置 | 整库离线方案配置的源表和目标表数量较多时,您可设置单次拉取表数量,来分批进行表映射配置,默认单次拉取数量为 100 张表,您可根据实际情况进行调整,填写范围 1~2000。 |
高级参数配置 | 您可为同步解决方案配置全局的高级参数,打开开关按钮后,可通过以下方式配置:
如单表编辑模式,您可通过设置参数: |
单击库/表名映射配置按钮,在弹窗中配置库表匹配策略,支持选择与来源库表同名和自定义方式匹配:
注意
映射规则配置完成后,单击弹窗右上角关闭按钮,即规则映射配置完成。
MySQL2ByteHouse_CDW 解决方案通道,支持配置 DDL 策略,若您的实际业务场景中会遇到较多来源端新增表、新增列等 DDL 操作场景时,您可配置使用。
不同数据源中不同的 DDL 消息目前可能支持的处理策略不同,整体处理策略如下:
目前不同 DDL 消息处理策略情况如下:
DDL 消息 | 自动处理 | 忽略变更 | 日志告警 | 任务出错 |
|---|---|---|---|---|
新建表 | ✅ | ✅ | ✅ | ✅ |
删除表 | ✅ | |||
重命名表 | ✅ | |||
新增列 | ✅ | ✅ | ✅ | ✅ |
删除列 | ✅ | ✅ | ✅ | ✅ |
重命名列 | ✅ | ✅ | ✅ | ✅ |
修改列类型 | ✅ | ✅ | ✅ | ✅ |
清空表 | ✅ |
注意
DDL 消息处理策略说明详见解决方案 DDL 策略配置。
支持通过引用参数变量的方式来自定义配置解决方案中生成的离线任务名称,便于您后期可依据自定义的任务名称快速查找任务进行维护。配置操作详见 8.3.4 任务名称配置。
库/表映射配置、DDL 等配置完成后,您可单击刷新源表和目标表映射按钮,自动加载源表和目标表信息,您可以在列表中进行以下操作:
说明
对于历史方案,操作方案编辑,如在原有方案中进行新增表、删除表操作时,单击刷新源表和目标表映射按钮,会弹窗表选择范围,您可按需选择刷新全量表映射或仅刷新变化表映射按钮进行表映射刷新。
在方案编辑过程中,若同时对库/表名映射、DDL 配置、DML 配置、使用已有表配置、高级参数配置、数据源等所有涉及表内容的修改时,系统将默认会刷新全量表映射,且不会弹出选择窗口。
操作项 | 说明 |
|---|---|
筛选库表 | 单击漏斗按钮,您可输入源端与目标端的库表信息,进行筛选搜索。 |
源表/目标表主键 | 默认设置为源表中设置的主键字段信息,您可下拉进行选择源表中其余字段作为目标表的主键字段。 |
排序策略 | 排序策略将影响实时增量任务,若无排序字段,可能会出现上游乱序导致下游数据源错误,建议增加排序策略。
|
排序字段 | 目标端为 ByteHouse CDW 时,在源端已有的字段中,下拉选择排序字段信息,最多选择 5 个排序字段。 |
表建立方式 | 表建立方式分为使用已有表、自动建表和数据表不存在几种方式:
|
分区字段 | 支持为目标表选择无分区、字段分区两种分区字段类型:
注意
|
全量同步 |
|
清表策略 | 您可根据实际情况,选择是否开启清表策略,开启表示在数据写入目标表前,会清空原有目标表中的数据,通常是为了使任务重跑时支持幂等操作。 |
查看字段信息 | 可以查看来源表、目标表的字段名和其对应的字段类型等信息。在弹窗中,您也可对自动创建的目标表字段类型和字段描述信息,进行手动编辑调整。 |
配置 | 您可为同步解决方案配置多表映射高级参数,以 key-value 的形式输入。如果您需要对某个表进行特殊配置,如对表数据进行过滤,您可在此配置单表过滤条件,可添加以下高级参数: |
重置 | 单击操作列中的更多 > 重置按钮,可重置源表与目标表的映射关系。 |
批量操作 | 当目标表数量较多时,您可勾选多个表后,批量对目标表进行全量同步设置、清表策略设置操作。 |
方案映射配置完成后,单击右下角提交方案按钮,进行方案的提交,在弹窗中,您可根据实际情况勾选方案是否立即执行,并单击确定按钮,完成实时数据同步解决方案的创建。
方案创建完成后,进入到方案列表界面,便可查看方案的执行概况。
单击运维操作列的执行详情按钮,进入解决方案执行详情界面:
在执行详情界面,等待所有步骤执行完成,您可根据步骤完成情况,查看各个步骤的执行详情:
您可在“一次性全量批任务启动”步骤执行详情中,查看批式任务的运维与执行日志情况。批式任务运维操作详见离线任务运维。
在“增量流任务启动”步骤详情中,查看增量流式任务的运维、执行日志和 Application Url 等任务详情。
单击更多 > Application Url 按钮,进入查看增量流式任务的执行详情,您可在该界面中看到实时同步成功数据量、失败数据量、数据量大小等详情。
一次性全量批任务和增量流任务执行成功后,您可前往 ByteHouse云数仓版目的端数据库中,验证数据的实时接收情况。
前往 ByteHouse 控制台 ,打开SQL工作表,详见SQL工作表使用说明。
执行以下语句,查询 对应表数据进行验证
use dts_test_do_not_delete; select * from mysql_2_bhcdw_cdc;
数据验证无误后,您可以对已创建的任务进行管理,如同步方案的编辑、重启、暂停、添加任务监控等操作。
操作详见实时任务监控指标及告警配置。
实时整库同步任务提交执行后,若遇到以下情况,您可以修改任务配置,并重新提交执行:
同步全量历史数据时,如果业务环境中数据量比较大,您可参考以下调优参数来提高任务同步效率。
案例需求: 7 千万条数据,100GB 大小 ,期望在 1小时内同步完成。
案例分析:数据条数不多,但单条数据较小,会比较占内存
离线集成参数:
更多参数说明详见5.3 资源组高级配置(任务高级参数配置)。
案例效果 : 占用资源 9c36G ,同步效率 3GB/分钟
案例需求: 在有限集成资源组资源下进行同步,时间没有硬性要求。
案例分析: 集成资源组总共 4CU 资源,单条数据较小。
离线集成参数:
更多参数说明详见5.3 资源组高级配置(任务高级参数配置)
案例效果 : 占用资源 3c12g ,同步效率 1GB/分钟左右
在配置 ByteHouse CDW 数据源时,可指定一个 ByteHouse CDW 计算组信息。
该计算组信息在数据源中绑定,在任务执行时,您可通过以下高级参数,来指定使用的计算组信息:job.writer.virtual_warehouse=Your_ByteHouse_Virtual_Warehouse(如 vw-21xxxxxxxxxx7-dxx-xxt)
问题案例:
一个解决方案里包含 实时 与 离线 任务,离线数据量大,任务执行时经常抢不到资源或运行缓慢,偶尔还会出现以下报错异常信息。
关键字:
Could not allocate the required slot within slot request timeout Please make sure that the cluster has enough resources.
报错信息:
2024-06-26 14:22:20,651 ERROR org.apache.flink.runtime.executiongraph.ExecutionGraph flink-akka.actor.default-dispatcher-4 [] - Source_JDBC -> InputAdapter(1/2) - execution #0 (fa9cc83da71d0264a124b6849212316e) switched from SCHEDULED to FAILED on not deployed org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: Could not allocate the required slot within slot request timeout. Please make sure that the cluster has enough resources. at org.apache.flink.runtime.scheduler.DefaultScheduler.maybeWrapWithNoResourceAvailableException(DefaultScheduler.java:809) at org.apache.flink.runtime.scheduler.DefaultScheduler.lambda$assignResourceOrHandleError$19(DefaultScheduler.java:790) at java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:822) at java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:797) at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
解决方案:
该报错现象是因为数据集成资源组可用资源不足,您可对集成资源组进行扩容操作。当业务高峰期过后,您便可对资源组进行缩容操作,提高资源组利用率。操作详见独享集成资源组管理。
问题案例:
MySQL2ByteHouse_CDW 实时整库同步执行时,出现内存超限异常信息。
关键字:
ByteHouseSQLException: errbook_Gateway_InsertToWorker_WaitFail_IE Memory limit (total) exceeded
报错信息:
2024-10-05 20:03:13,663 ERROR com.bytedance.bitsail.bytehouse.sink.BytehouseSinkWriter bytehouse-async-flusher-ai_match_product_nft_second_price-0 [] - Subtask 0 commit data to bytehouse failed, retry count 5. com.bytedance.bitsail.common.BitSailException: Code:[Common-05], Describe:[Internal error found in BitSail. This is usually a bug.] - com.bytedance.bytehouse.exception.ByteHouseSQLException: errbook_Gateway_InsertToWorker_WaitFail_IE Memory limit (total) exceeded: would use 14.40 GiB (attempt to allocate chunk of 4220596 bytes), maximum: 14.40 GiB SQLSTATE: 53000. Stack trace:
解决方案:
多为 ByteHouse CDW 计算组(VW)内存不足。请对 ByteHouse CDW 计算组执行扩容,提升可用内存后重试。详见计算组操作。
问题案例
MySQL2ByteHouse CDW 整库实时任务,创建 MySQL 连接异常。
关键字:
Could not create connection to database serve Connection timed out
报错信息:
2024-07-09 11:50:52,769 ERROR com.bytedance.bitsail.core.Engine flink-akka.actor.default-dispatcher-3 [] - The cause of the job failure maybe due to: java.util.concurrent.ExecutionException: com.bytedance.bitsail.common.BitSailException: Code:[JDBCPlugin-04], Description:[Error occurred while getting database connection.]. - Shard info: (shard num: 0 10.xxx.xx.xx:3306 jdbc:mysql://address=(protocol=tcp)(host=10.xxx.xx.xx)(port=3306)/ordercenteruat?autoReconnect=true). Error: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) - org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at com.bytedance.dts.batch.jdbc.split.DbShardWithConn.connect(DbShardWithConn.java:229) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
解决方案:
此异常多为 MySQL 与 DataSail 集成资源组 网络不通 或 白名单未放行。您需核查数据库 入口/出口网络策略 与 白名单配置,确保 DataSail 与数据库之间 网络直通。
问题案例:
实时整库同步任务,在启动时报初始化位点错误,提交失败 check job start permission failed
关键字:
初始化位点错误,check job start permission failed,show master status 异常;
报错信息:
_level: ERROR __logid: - _podname: dp-70xxxxxx7a-5cxxxxx4-zsfwb _msg: 2024-07-31 21:11:15,869 [ERROR] [ForkJoinPool-1-worker-35] c.b.d.d.c.s.i.JobScheduleServiceImpl.scheduleJobByStatus:379 - Failed to submit job, job id: 97xxxx34, resource group id: 1xxx8 com.bytedance.dataplatform.dts.exception.DTSException: Service internal error, error info: Failed to start job to project=v1xvfa5htyh7, remote response: OpenApiResp(ResponseMetaData=OpenApiResp.ResponseMetaData(RequestId=202407xxxxxxxxxxx633, Action=StartApplicationInstance, Version=2021-06-01, Service=flink, Region=cn-beijing, Error=OpenApiResp.Error(Code=default system error, Message=check job start permission failed.)), Result=null) at com.bytedance.dataplatform.dts.commander.client.vci.VciRemoteClient.submit(VciRemoteClient.java:120) at com.bytedance.dataplatform.dts.commander.client.vci.VciRemoteClient.submit(VciRemoteClient.java:67) at com.bytedance.dataplatform.dts.commander.client.vci.VciRemoteClient$$FastClassBySpringCGLIB$$c96c01ba.invoke(<generated>)
解决方案:
此异常根因为 MySQL 用户没有 show master status 权限。
数据同步解决方案使用该 MySQL 数据源,配置实时方案读取 Binlog 时,需要先执行以下授权 SQL 命令给配置的账号:GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'user' IDENTIFIED BY 'password';详见4.1 数据源注册。
问题案例:
MySQL2xx 实时整库同步方案中,执行报错 You are not using binary logging。
关键字:
mysql2xx You are not using binary logging
报错信息:
2024-05-30T14:06:38+08:00 "Source_mysql_cdc -> split_stream -> (Map, Map_1, Map_2, Map_3) (1/1)- execution # 2 [] - Source_mysql_cdc -> split_stream -> (Map, Map_1, Map_2, Map_3) (1/1)- execution # 2 (1cebb1bb660405db9a1f5ddd0549c6f4) switched from RUNNING to FAILED io.debezium.DebeziumException: Unexpected error while connecting to MySQL and looking for binary logs: at io.debezium.connector.mysql.MySqlConnection.availableBinlogFiles(MySqlConnection.java:416) at com.bytedance.bitsail.connector.cdc.mysql.source.reader.MySqlFetchTaskContext.isBinlogAvailable(MySqlFetchTaskContext.java:251) at org.apache.flink.streaming.runtime.tasks.StreamTask.executeInvoke(StreamTask.java:876) at org.apache.flink.streaming.runtime.tasks.StreamTask.runWithCleanUpOnFail(StreamTask.java:887) at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:860) at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:1036) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:807) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: You are not using binary logging at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1206) at io.debezium.jdbc.JdbcConnection.query(JdbcConnection.java:560) at io.debezium.jdbc.JdbcConnection.query(JdbcConnection.java:503) at io.debezium.connector.mysql.MySqlConnection.availableBinlogFiles(MySqlConnection.java:408) ... 21 more ."
解决方案:
此异常是因为源端 MySQL 中 Binlog 文件不存在导致。您可进行解决方案的强制重启或重置位点操作。详见9 解决方案运维.