1. 概述编辑
1.1 版本
| FineDataLink 版本 | 功能变动 |
|---|---|
| 4.0.5 | - |
| 4.1.8.1 |
|
| 4.2.1.1 | 1)管道任务状态划分为任务级、表级:
所以,「管理活动>实时统计」下,当前同步阶段右侧的筛选按钮内容更新 2)去掉提示:分组表不支持运维操作,仅支持对其中的分组子表进行运维操作 |
| 历史版本更新说明 | ||||||||
|
1.2 应用场景
IT 人员在配置完数据管道任务后,需要对管道任务的同步情况、同步性能、异常问题进行监控和处理。
1.3 功能简介
用户点击已启动过的管道任务,可查看当前任务的同步详情、运行日志。如下图所示:
支持通过时间维度、数据表维度查看实时同步情况。
支持单条脏数据处理、批量脏数据处理。
可查看管道任务的历史运行日志记录、支持查询和筛选日志。

2. 管理活动编辑
2.1 时间维度查看实时同步情况
点击「管理活动」即可看到当前任务的历史同步趋势。
注:实时统计和历史统计Tab下,同步对象分为分组表和普通表;分组表可展开,查看分组内部的子表。

2.1.1 实时统计
点击实时统计,即可查看任务历史读取总量,即任务从首次运行开始一共读取、输出的数据总量、待同步数据量、读取和输出数据的实时速率。
注:若使用了重新同步,单表的读取和写入会被重新计算,「重新同步的数据量」不会累加进「实时统计」的读取总量和输出总量里,但是会累加进「历史统计」中。

说明如下:
1)读取总量=待同步量+输出总量+脏数据量
待同步下可查看全任务、单个数据表的待同步写入延迟时间。
写入延迟时间=读取消息时间-写入消息时间

分组表的脏数据数量、待同步量、读取数据量、输出数据量,为各分组内的表对应指标求和:
例如分组表A中包含两个子表A1、A2:
分组表A脏数据数量:(来源于A1,写入A失败时的脏数据量) + (来源于A2,写入A失败时的脏数据量)
分组表A待同步量:来源于A1的待同步量 + 来源于A2的待同步量
分组表A读取数据量:来源于A1的读取(增删改)数据量 + 来源于A2的读取(增删改)数据量
分组表A输出数据量:来源于A1的写入(增删改)数据量 + 来源于A2的写入(增删改)数据量
2)其中数据表的读取和写入消息时间可在悬浮查看,如下图所示:

2.1.2 历史统计
在 4.1.2 及以上版本,点击「历史统计」,用户可以选择近2小时、近24小时、近3天、近7天、近15天等等各种时间段的实时同步详情。
展示同步读取数据总和、待同步行和输出总量、以及读取和输出数据的实时速率(行/s),如下图所示:

同时也可以自定义筛选时间区间,查看选定区间的数据同步情况,如下图所示:

2.2 数据表维度查看同步情况
同步对象模块下可查看到所有来源表的同步情况,如下图所示:

| 功能 | 说明 | |
|---|---|---|
| A | 来源数据表 | 数据表名 |
| B | 数据表读写时间 | 「实时统计」显示 读取消息时间 写入消息时间 |
| C | 同步状态 | 1)表当前同步阶段:增量同步、存量同步等,4.2.1.1 及之后版本,表状态新增:「待初始化」、「初始化中」、「待存量同步」、「待增量同步」、「脏数据处理中」、「中止」。详情请参见:单个管道任务状态说明 2)当前同步阶段右侧有个筛选按钮,点击后,可筛选表状态。如下图所示:
注:「当前同步阶段」列说明:分组内全部表都处于增量同步时,分组表处于增量同步,只要分组内有表处于全量同步,分组表处于全量同步 |
| D | 脏数据 |
注:对于主键字段值由A更新为B的数据,当主键更新事件失败时,拆解为两条脏数据记录:主键为A的数据删除、主键为B的数据upsert; 导出时,按照字段映射配置中的目标端表结构导出; |
| E | 待同步量 | 待同步数据量 |
| F | 读写统计 | 详细描述数据插入、更新、删除条数 显示读写速度 注:仅可在「历史统计」中查看 |
| G | 查看日志 | 查看单表任务运行日志 |
| H | 重新同步 | 支持对单表和整个管道任务进行重新全量同步,会将目标端表清空并重新执行全量同步、在全量同步结束后转入增量同步; 在任务被开启重新全量同步后,日志统计信息会重置(输入行、输出行); 注:若开启逻辑删除标识时,重新同步对目标表清表重写,重写采用insert逻辑,出现提示“任务运行期间产生的逻辑删除数据将会被清空,请确认”。 |

用户点击脏数据,即可筛选出有脏数据的来源表,然后点击指定的数据表,即可看到详细的脏数据错误原因,更便于进行后续的脏数据处理,错误分类和原因如下表所示:
错误分类 | 错误原因 | 详细错误信息 |
|---|---|---|
| 字段的数据类型不匹配 | <column_name>字段的数据类型不匹配 | 一个或多个字段<column_name>的预期数据类型和实际数据类型不匹配,或者与过去收到的数据类型不同,请更新目标表的字段类型。 如:在布尔字段中找到字符串值 ,或不可为空字段中的空值。 |
| 数据的长度超出字段长度 | 数据的长度超出<column_name>字段长度 | 数据的大小大于列<column_name>的大小,请更新目标表的字段类型。 如:在VARCHAR(255)字段中找到长度为1000的字符串。 |
| 目标字段不存在 | 列<column_name>不存在,请创建相关字段 | 在字段映射中指定的一个或多个目标列<column_name>在目标表中不存在,请创建相关字段。 |
| 目标表不存在 | 目标表<table_name>不存在 | 在字段映射中指定的目标表<table_name>不存在,请创建相关表。 |
| 数据去向不可用 | 数据去向<data_connection_name>连接失败 | 数据去向<data_connection_name>连接失败,请检查网络是否连通、账号密码是否正确、账号是否有权限等。 |
| 写入时权限不足 | 目标表<table_name>无写入权限 | 目标表<table_name>无写入权限,请调整相关权限后重试 |
| 全量同步阶段出现错误 | 全量同步阶段出现错误 | 具体错误详情 |
| 其他错误 | 其他 | 堆栈详情 |
2.3 脏数据处理
注:脏数据明细展示和处理针对分组表的说明:暂时不允许对分组表进行整体的处理操作,所有处理操作在分组内的各表中进行。
2.3.1 单条脏数据处理
若需要对单条脏数据进行处理,则直接在选择指定数据表的脏数据,然后进行重试或者忽略操作即可,如下图所示:
注:只有当管道任务中的表在增量阶段,脏数据达到阈值时,才支持重试脏数据。

2.3.2 脏数据批量处理
若需要对当前任务中全量脏数据或者是指定单表的脏数据进行批量处理,则选择指定的来源库数据表,可勾选任务中的单表或者多表,进行脏数据的忽略、重试或者重新同步,如下图所示:

| 处理方式 | 说明 |
|---|---|
| 忽略脏数据 | 对单表和指定多表,忽略功能会将缓存的脏数据进行删除,且删除后不可找回; 同时这部分数据的行数从日志统计的脏数据行数去掉; |
| 重试脏数据 | 对单表和指定多表,重试功能会将缓存的脏数据进行再次提交,并更新数据量统计; 注:只有当管道任务中的表在增量阶段,脏数据达到阈值时,才支持重试脏数据 |
| 重新同步 | 1)支持对单表和整个管道任务进行重新全量同步,会将目标端表清空并重新执行全量同步、在全量同步结束后转入增量同步; 2)在任务被开启重新全量同步后,日志统计信息会重置(输入行、输出行); 注1:若开启逻辑删除标识时,重新同步对目标表清表重写,重写采用insert逻辑,出现提示“任务运行期间产生的逻辑删除数据将会被清空,请确认”。 注2:存量同步阶段产生的脏数据不支持重试。 |
注:管道任务处于存量阶段时,脏数据重试/忽略/重新同步都不支持。
若用户需要处理存量同步阶段产生的脏数据,可以导出明细数据,然后手动调整或者插入,如下图所示:

注1:当数据源是kafka ,不支持重新同步,且过期的脏数据若想重试,仅能通过全表重跑或手动插入脏数据后在管道处忽略脏数据。
注2:若任务为暂停或者中止状态,重新同步后,需要在下次启动时才会真正执行重新同步的逻辑。
脏数据事件记录逻辑:
若在t1时间点,主键为A的数据产生了脏数据,t1以后再进行主键为A的写入时,如果写入成功,则清除主键A历史脏数据,如果写入失败,则仅保留主键A的最新一条脏数据
若在t1时间点,主键为A的数据被更新为主键为B,则管道应拆解为两个事件进行顺序处理至目标端:Delete A,Insert B;
注意事项:
输出端为批量装载模式的制约
当输出端为批量装载模式时,此时一般会使用一个包括很多数据条数的大批次进行一次性提交数据到目标端,这类数据源可能无法识别到过程中哪些数据出现了脏数据,目前已有的支持批量装载的目标端具体分析如下:
1)GaussDB 200 支持两种写入模式,分别为copy和并行装载:
copy模式:
在全量阶段,当单批次提交失败后,会将这个批次的数据改为调用JDBC接口进行写入(目前单个批次1024条),JDBC写入时能获取到具体错误数据,进而实现脏数据明细展示,但是JDBC方式性能不佳;
在增量阶段,当单批次提交失败后,会将整个批次的数据记为脏数据(目前单个批次最大是5M,约合一般1万行内,具体行数与单条数据大小有关);
并行装载(load):
并行装载时,也是将单次任务内所有需要的数据进行一次性提交,但是并行装载提供接口可以查询具体错误数据,进而FineDataLink 也可以实现脏数据明细查询。
2)HIVE 的HDFS写入方式:
直接一次性写入到HDFS文件、完全无法获取明细错误数据,不支持脏数据管理;
3. 运行日志编辑
3.1 可视化日志
1)点击「运行日志」即可看到当前管道任务的历史运行日志记录,展示日志的时间、等级、分类、描述,如下图所示:

2)同时可进行日志查询和筛选,如下图所示:
注:支持根据任务筛选日志和根据表筛选日志,同时可以查看各种类型的日志;也可根据日志生成时间筛选日志。

点击「筛选」按钮后,「日志分类」可选择以下内容:

3)若暂无运行日志,页面如下图所示:

3.2 日志等级
日志分为四级:BASIC INFO、INFO、WARN、ERROR 四级。
其中BASIC INFO 作为基础等级的日志。

也可以点击每一条日志对应的详情查看具体的说明,如下图所示:





