1. 概述
1.1 版本
| FineDataLink版本 | 功能变动 |
|---|---|
| 4.2.4.3 | - |
| 4.2.14.1 | 实时采集任务运行逻辑优化 |
1.2 应用场景
当多个实时任务、实时管道任务对同一个数据库的不同表进行实时同步时,会重复解析数据库的日志,导致数据库压力过大,特别是在实时任务场景下,不同表会在不同实时任务中处理,就很容易导致日志被解析多次。
1.3 功能简介
实时采集任务支持对数据库日志解析进行管理,存储日志解析产生的变更数据,实时任务/实时管道任务能够消费实时采集任务的数据。
注:所有实时任务/实时管道任务的 CDC 输入,都默认走实时数据采集任务。

2. 实时采集任务运行说明

2.1 新建实时采集任务
2.1.1 新建流程
1)点击「管理系统>数据连接>实时采集任务」,设置 缓存设置
2)创建实时管道或者实时任务后,在「管理系统>数据连接>实时采集任务」中自动新增实时采集任务,不需要用户手动新增。如下图所示:

2.1.2 实时采集任务与数据连接关系
4.2.14.1 之前版本:
采集任务根据数据连接URL来区分:
如果不同数据连接URL完全一致,只会创建一个实时采集任务。
数据连接URL发生变化,比如加个空格/加个后缀参数之类,就会创建一个新的采集任务。

4.2.14.1 及之后版本:
采集任务以「数据连接的名称」来区分。
2.1.3 示例说明
注:重置启动实时管道任务/实时任务,相当于新建任务,参考下方表格说明即可。
| 场景 | 说明 |
|---|---|
已有实时采集任务,新建一个新表的任务:
| 任务启动时,在实时采集任务1中自动新增table3的日志解析:
|
已有实时采集任务,新建一个已存在表的任务:
| 任务1直接使用实时采集任务1收集的日志数据: 1)当任务1使用「全量+增量」或「启动时间」时,使用实时采集任务1 2)当任务1使用「自定义时间」时:
|
2.2 暂停/中止实时管道或实时任务对采集任务的影响
4.2.14.1 之前版本:
| 场景 | 说明 |
|---|---|
| 检查任务中使用的所有来源表的CDC数据是否有其他任务在使用:
|
| 检查任务中使用的所有来源表的CDC数据是否有其他任务在使用:
|
4.2.14.1 及之后版本:
当实时管道/实时任务暂停时,不再自动触发采集任务中表的暂停(若实时采集任务中存在表未被使用,会进行提示;同时,实时采集任务中支持 手动删除表 )。
2.3 删除实时管道或实时任务对采集任务的影响
4.2.14.1 之前版本:
| 场景 | 说明 |
|---|---|
| 删除任务时,检查任务中使用的所有来源表的CDC数据是否有其他任务在使用:
|
| 删除任务时,检查任务中使用的所有来源表的CDC数据是否有其他任务在使用:
|
4.2.14.1 及之后版本:
当实时管道/实时任务删除时,不再自动触发采集任务中表的删除(若实时采集任务中存在表未被使用,会进行提示;同时,实时采集任务中支持 手动删除表 )。
2.4 启动实时管道任务或实时任务对采集任务的影响
| 场景 | 说明 |
|---|---|
| 恢复任务时,检查任务中使用的所有来源表的CDC数据是否在收集: 1)如果是在收集,说明有其他任务正在使用这些表的CDC数据,按照当前任务的断点从实时数据共享中心取数进行同步即可
2)如果没有在收集,说明也没有其他任务正在使用这些表的CDC数据,自动恢复启动该实时采集任务收集,继续收集table1、table2、table3的数据,按照当前任务的断点从实时数据共享中心取数进行同步即可
3)任务1恢复启动时,有三种情况:
|
| 恢复任务时,检查任务中使用的所有来源表的CDC数据是否在收集: 1)如果是在收集,说明有其他任务正在使用这些表的CDC数据,按照当前任务的断点从实时数据共享中心取数进行同步即可
2)如果没有在收集,说明也没有其他任务正在使用这些表的CDC数据,自动恢复启动该实时采集任务收集,继续收集table1的数据,按照当前任务的断点从实时数据共享中心取数进行同步即可
|
4.2.14.1 及之后版本,逻辑优化:
1)当采集任务被手动暂停后,因为某一个实时任务重新触发启动时,启动时就恢复所有表的采集。
2)当实时管道、实时任务恢复启动时:
对应的采集任务不存在或者对应的表不存在时,实时管道报表级错误、实时任务报任务级错误;采集任务中,报错:没有解析${表名}的数据,请重新同步,自动添加该表的解析
对应的表运行错误时,实时管道报表级错误、实时任务报任务级错误;采集任务中,报错:${表名}解析错误,请重新同步,自动重置该表的解析
对应的表最早消息时间晚于所需时间时,实时管道报表级错误,实时任务报任务级错误;采集任务中,${表名}的增量数据已过期,请重新同步
2.5 实时采集任务运行错误
| 场景 | 说明 |
|---|---|
实时采集任务从运行中→ 运行错误:
|
所有依赖实时采集任务1的任务全部运行错误中止,并且打印出实时采集任务1具体的错误原因 用户按照具体的错误原因,采取针对性的操作即可 |
实时采集任务被异常停止:
|
|
2.6 实时采集任务中表异常
1)实时采集任务中表的异常情况都在实时、管道任务中体现。
当实时采集任务中表运行错误、异常删除时,依赖该实时采集任务的实时任务报错中止,实时管道任务移除异常表的同步,正常的表照常同步,当实时管道任务中所有表都异常时,管道任务才整体报错。
比如解析相应时间点的日志时,如果相应时间点的日志丢失,则实时采集任务报错中止、依赖该实时采集任务的任务也报错。
2)当新建的实时任务、实时管道任务的启动时间早于实时数据共享中心的数据最早的数据时,会自动补齐数据。
2.7 对实时任务、实时管道的影响
1)实时采集任务将数据库中所有CDC数据都写入到实时数据共享中心,由各个业务决定使用哪一类数据。比如对于 DDL 的数据,数据管道会进行使用,实时任务暂时没有使用 DDL 的功能。
注:实时采集任务暂不支持脏数据容忍,遇到脏数据时,先走重试逻辑,重试失败后,则实时采集任务报错中止。
2)对实时、管道任务运行逻辑的变动:
1)重试逻辑:管道、实时任务的重试不控制与 CDC 数据源的重试,只控制管道和实时数据共享中心连接的重试和其输出端的重试。
2)删除表情况:
实时任务需要基于删除的 ddl 事件,报错中止、打印相应报错日志,并触发相应的结果通知。
实时管道任务会基于删除表的ddl事件,触发通知和打印日志,继续同步其他表。
3)自定义同步时间:在实时任务、实时管道任务中同步方式选择「自定义时间」时,可以设置「数据库日志最早时间」和「共享中心最早时间」中的最早时间;实时管道任务中需要取「当前任务的所有表各自的最早时间」中的最晚时间。
4)恢复启动:当实时、管道任务恢复启动时,如果实时数据共享中心中最早的数据晚于断点时间,任务报错中止。
