# 错误队列
## 1.什么是「错误队列」?
在执行数据任务的过程中,为避免数据任务无法正常运行,数据工程师需要及时处理数据相关问题。
DataPipeline提供错误队列功能,实时收集所有的数据相关错误,并展现给数据工程师。数据工程师针对每一个数据任务,可后置处理数据相关问题,由此规避了数据错误导致的数据任务执行效率问题,并减轻了数据工程师的工作压力。
当数据任务的错误队列为空时,系统会展示错误队列为空。
## 2.主要功能介绍
:-: 
### A. 错误队列总览
* 两个部分:错误队列数量、错误队列分布。
* 总览左侧默认显示该数据任务的错误队列总数。
* 错误队列分布图默认显示该数据任务的错误队列发生在哪些数据表,并且占比是多少。
* 点击分布图中任意数据表区域,左侧会显示对应数据表下的错误数量,并且错误队列详情列表只显示该数据表下的错误队列。
### B. 筛选工具
* 数据表筛选。默认显示全部的错误队列,用户可以根据筛选工具选择某一个特定的数据表(在分布图点击任意数据表同样能够筛选特定的数据表)。
* 错误类型筛选。默认显示全部的错误类型,用户可以根据筛选工具选择某一个特定的错误类型。
* 时间筛选。默认不进行时间筛选,即展示所有的错误内容。用户可以自定义设置起始时间和结束时间来查询某一个特定时间段内的错误队列。
### C. 状态提示图标
* 系统会不断检测用户当前页面内容与服务器端是否一致,当其他用户对内容有所操作或者有新的错误内容增加时,会出现该按钮提示用户内容有更新,点击后就可以刷新当前页面更新至最新错误内容。
* 点击后将会刷新错误内容页面,不影响筛选条件,但是会清空已经勾选的内容。
### D. 搜索功能
* 可根据搜索功能快速定位查询用户寻找的错误队列。
* 输入关键词后点击「回车」即可。
* 搜索范围:数据表名称、错误类型名称、错误类型详情、原始数据。
* 搜索功能与筛选工具为联动查询,只显示用户设置的筛选条件下的错误队列。
### E. 错误队列详情列表
* 内容:勾选图标、数据表名称、错误类型、时间、原始数据、操作按钮。
* 勾选:支持勾选单条或多条错误内容,也可点击标题栏的勾选图标来选中当前已加载的全部内容。
* 当用户操作勾选时,标题栏将隐去各栏的对应标题,同时告知用户已经勾选的数量,右侧会出现批量操作的按钮。
* 点击标题栏的勾选图标只会选中当前已经加载的全部内容,用户可点击「勾选所有n项内容」来勾选所有符合筛选条件的错误内容(若未筛选则会选中所有错误内容)。
:-: 
* 用户可点击「扩展按钮」来展开单条错误内容的具体信息。
* 数据表名称:错误队列记录的错误内容来自于该数据表的数据。
* 错误类型:代表该数据被记录到错误队列的具体原因。错误类型包含错误类型名称和具体错误信息。
* 时间:代表该数据进入错误队列的时间。
* 原始数据:代表发生该错误队列事件的原始数据。
* 操作按钮:当用户鼠标悬浮或选中单条错误内容时,将出现操作按钮,用户点击可以选择对数据内容进行的操作,目前支持重试、忽略和导出。
:-: 
* 重试:系统将重新尝试向目的地传输保存在错误队列中的数据。
* 点击后将弹窗提示用户确认重试,确认后系统将开始处理这些数据。
:-: 
* 当选择的数据较多时,点击确认后需要处理的时间较长,请您耐心等待;
* 确认重试后,错误队列会清除这条错误内容,下方错误队列详情页会实时刷新清除后的内容,上方错误队列总览需要您刷新页面后显示最新数据。若您操作了全选重试,操作成功后错误队列详情页会显示为暂无数据。
* 任务状态为进行中,您的重试操作会立刻开始,若再次发生错误,这些数据内容将重新进入错误队列,并更新记录时间;
* 任务状态为已暂停,您的重试操作将会等待任务重启后开始。
* 若重试操作失败,选中的数据暂时会被清除,稍等片刻后将会回到错误队列,不会改变记录时间。
* 导出后,消息列表提示:“用户重试了错误队列的数据传输。”
* 若失败,则在通知中心和消息列表中告知用户:“该项操作失败,请重试。”
:-: 
* 忽略:对应的数据将从错误队列清除。
* 点击后将弹窗提示用户确认忽略,确认后对应数据将从错误队列清除并不可恢复。
:-: 
* 忽略后,消息列表提示:“用户忽略了错误队列的数据。”
* 若失败,则在通知中心和消息列表中告知用户:“该项操作失败,请重试。”
:-: 
* 导出:会对指定错误字段的原始数据进行导出。
* 点击后将弹窗提示用户确认导出,支持导出csv或者json格式。
:-: 
* 点击「确认」后系统将对用户操作的数据进行处理,处理时间根据数据量大小而定,当处理结束后将自动唤起浏览器的下载,用户点击下载即可。
* 导出成功后,数据仍将保留在错误队列中。
* 注意!请允许浏览器弹出窗口,否则下载的窗口可能会被拦截。
* 消息列表提示:“xxxxx导出了错误队列的数据。”
* 若失败,则在通知中心和消息列表中告知用户:“该项操作失败,请重试。”
:-: 
### 另外. 错误队列的预警
* 任务采取预处理机制,保证错误率的平均度,同时保证低数据量的任务的正常运行。
* 目前每个任务的每个数据表预先处理指定量的数据。
* 计算每个表指定量数据进入错误队列的错误率。
* 错误率=进入错误队列的错误数/处理过的数据总数。
* 后续任务进行过程中进行实时的数据错误率判断。
* 一旦错误率达到指定阈值,将触发操作,例如目前平台采取的措施为:
| 错误率 | 对应操作 |
| --- | --- |
| <5‰ | 不提醒,正常进行后续数据传输。 |
| <1%且≥5‰ | 在错误通知中心进行通知,提示用户查看具体信息,正常进行后续数据传输。 |
| ≥1% | 在错误通知中心进行通知,提示用户查看具体信息,暂停整个数据任务。 |
* 其中,错误率与对应操作支持用户或者根据实际生产环境进行配置,包括:
* 错误率阈值的设定。
* 对应错误率触发的对应操作内容:是否暂停任务、发送通知、发送邮件等均可进行配置。
* 当数据任务的错误队列不为空且到达一定数量时,会第一时间在[**通知中心**](../yun-wei-guan-li/shu-ju-ren-wu-lie-biao.md)和和对应任务的[**消息列表**](../yun-wei-guan-li/xiao-xi-lie-biao.md)提醒用户任务存在错误队列,让用户快速了解数据任务的错误情况。
* 根据设定的不同阈值,错误队列的错误率达到对应值时会对数据任务采取不同的预警方式,包括对任务的暂停等,防止过多错误的产生。
* 错误队列数量达到上限时,系统会暂停产生错误的任务,防止平台溢出崩溃。
* 系统将会在通知中心向用户发送全局通知告知用户错误内容数量已达上限。

* 正在产生错误内容的数据任务将被暂停。
* 当前未产生错误内容的数据任务继续正常运行,当错误队列有新增错误时,任务将被暂停。
* 不再接受新任务激活、原任务重启等请求。

* 用户需要对错误内容进行处理,当错误数量低于上限值时,平台任务方可恢复正常,已暂停的任务可以操作重启。
* 具体的数量上限值可根据实际生产环境进行配置。
**常见问题:**
### Q1:为什么我的数据内容进入错误队列?
您可以根据数据的错误类型名称和具体的错误信息来了解导致进入错误队列的原因,例如:
* 「RULE_ERROR」,当您看到这个错误,就代表着数据内容因为无法匹配清洗规则而进入了错误队列。
* 例如,当您设置了「Column > 0」的过滤规则,而数据源「Column」字段值为NULL,平台无法进行过滤,导致了这些所有值为NULL的数据进入错误队列。
* 具体的清洗规则规范您可以点击查看[数据清洗](../sjqx.md)。
* 其他类型的错误您可以具体查看下方的错误信息详情来定位具体的错误来源,如果您对这些信息存在疑问,欢迎联系我们的技术团队帮您定位问题。
- DataPipeline产品手册
- 产品主要界面介绍
- 创建-数据任务
- 数据源
- 配置MySQL数据源
- BINLOG配置手册
- 配置Oracle数据源
- LOGMINER配置手册
- 配置SQL Server数据源
- Change Tracking配置手册
- 配置FTP数据源
- 配置Couchbase数据源
- 配置PostgreSQL数据源
- 配置S3数据源
- 配置API数据源
- 配置Kafka数据源
- 数据目的地
- 配置Redshift数据目的地
- 配置Oracle数据目的地
- 配置MySQL数据目的地
- 配置Kafka数据目的地
- 配置SQL Server数据目的地
- 配置FTP数据目的地
- 配置TIDB数据目的地
- 配置Greenplum数据目的地
- 配置Hive数据目的地
- Hive技术实现
- Hive目前支持情况
- 配置HybridDB for PostgreSQL
- 任务设置
- 选择同步内容
- 数据清洗
- 激活数据任务
- 管理-数据任务
- 数据任务列表
- 数据任务详情页
- 基本信息
- 概览信息
- 任务设置
- 错误队列
- 配置规则
- 消息列表
- 文件同步
- 文件源
- 配置S3文件源
- 配置FTP文件源
- 文件目的地
- 配置hdfs文件目的地
- 任务设置
- 激活文件任务
- 管理-文件任务
- 文件任务详情页
- 基本信息
- 概览信息
- 任务设置
- 消息列表
- 元数据管理
- 用户权限管理
- 系统设置
- 产品更新日志
- 常见问题
