数据任务故障排除
本节介绍在处理数据任务时可能会发生的问题以及如何解决问题。
环境错误故障排除
当数据任务遇到环境错误(例如超时、网络错误或连接错误)时,数据任务将自动重试该操作。如果重试后未解决错误,数据任务将停止运行,并显示状态错误和错误消息。
-
具有只能通过 数据移动网关 访问的数据源的登陆任务:
以 5 秒的间隔重试操作无数次。
如果停机时间较长,则间隔加倍,直到达到 1800 秒的间隔。
-
具有无需 数据移动网关 即可访问的数据源的登录任务、存储任务、转换任务和数据集市任务:
该操作将重试 3 次,间隔 1 秒。
执行以下操作:
-
使用错误消息解决错误。
-
重载或恢复数据任务的操作。
使用特定表排除问题
如果数据任务在写入特定表时遇到错误,该数据任务将继续运行。出错表将显示状态错误和错误消息。
-
使用错误消息解决错误。
-
重新加载出错的表。
CDC 问题疑难解答
使用满负载并持续更新变动更新模式的登陆数据任务可能会遇到与 CDC 相关的问题,这些问题会影响整个任务,并且无法通过重载特定的表来解决。问题的示例包括丢失事件、源数据库重组引起的问题或读取源数据库事件时失败。
您可以将所有表重载到目标以解决此类问题。
- 停止数据任务和所有使用它的任务。
-
打开数据任务,然后选择监视器选项卡。
-
点击 ...,然后重新加载目标。
这将使用 Drop-Create 将所有表重新加载到目标,并将从现在起重新启动所有更改数据捕获。
-
消耗登陆数据任务的存储任务将通过比较重新加载,并在下次运行时应用以保持同步。现有历史将被保留。类型 2 历史记录将更新,以反映执行重新加载和比较进程后的变化。
类型 2 历史记录中的起始日期的时间戳将反映重新加载日期,而不一定是源中发生更改的日期。
-
在重新加载目标操作期间以及在存储同步之前,存储实时视图将不可靠。存储将在以下情况下完全同步:
-
使用比较和应用重新加载所有表,
-
每个表执行一个更改周期。
-
有关更多信息,请参阅将所有表重新加载到目标。。
主键列中存在 NULL 值
执行数据任务时可能会收到错误消息:Unknown execution error - NULL result in a non-nullable column.
可能的原因
用作主键的列不能包含 NULL 值,并且应不可为 NULL。
建议的操作
在源数据任务中,添加一个将所有 NULL 值转换为值的表达式,例如 0。
还可以选择另一列用作主键。
使用 Redshift 作为数据平台时出现转换错误
使用 Redshift 作为数据平台时,您可能会遇到以下错误或类似错误:找不到从“未知”到变化字符的转换函数
可能的原因
缺少常数表达式的转换。由于最终查询的复杂性更高,这种情况在数据集市中可能会更频繁地发生。
建议的操作
将常数表达式转换为文本。
示例:
不明确的列名
当您基于在 Qlik Talend Data Integration 管道中创建的视图注册数据时,该视图可能包含由 Qlik Talend Data Integration 生成的列。这些列的名称(以 hdr_ 开头)被保留。当在存储任务中使用具有保留名称的列时,存储任务将创建具有相同保留名称的栏,从而导致命名冲突。例如,您可以有两个名为 hdr_key_hash 的列。
有关视图中保留列名的详细信息,请参阅视图。
建议的操作
重命名存储数据任务中来自已注册数据任务的列。例如,将 hdr__key_hash 重命名为 my__key_hash。
转换不会应用于现有数据
您在任务中使用现有数据添加或更改了转换,但再次准备和运行任务时,新的或更改的转换只会应用于新数据。
建议的操作
如果要对所有现有数据应用新的或已更改的转换,请重新加载所有受影响数据表。