数据流更新失败问题排查

1. 问题简介

在数据工厂的使用过程中,会存在数据流更新失败的情况。

以下是导致数据更新失败的几种情况:

  • 存在笛卡尔积
  • 输出数据量超出限制
  • 横向连接配置不正确

出现更新失败时可以查看 更新日志 排查问题,具体原因及解决方案参见下文详解👇

2. 存在笛卡尔积

2.1 问题说明

当执行日志中出现如下图所示的报错时,表示存在笛卡尔积导致数据更新失败。


2.2 问题原因

当数据流节点为 横向连接 时,可能会出现笛卡尔积。

1)如何判断出现笛卡尔积?

判断是否出现笛卡尔积的公式为:

2) 笛卡尔积示例

以下为两个表数据经过横向连接后的计算结果(3 种连接方式均可导致更新失败):


由于图中横向连接后的数据总量大于(表A+表B)的数据总和的 2 倍,因此将触发笛卡尔积而更新失败。

注:不论是左连接、右连接还是内连接,只要计算出来的结果符合公式规则,都将触发笛卡尔积限制。

2.3 解决方案

当结果出现笛卡尔积时,需要调整数据工厂配置或者修改原始数据(删除或新增数据,使得上述公式不成立即可)。

如上述示例中的笛卡尔积,我们可以通过修改横向连接的配置解决。

将产品对应的「规格」也设为连接字段,这样就可以将产品规格对应的数量和价格连为一张表了,而且也不会触发笛卡尔积限制。


3. 输出数据量超出100万条

3.1 问题说明

当执行日志中出现如下图所示的报错时,表示输出数据量超出限制导致数据更新失败。


3.2 问题原因

通过数据工厂计算的数据最终输出结果上限为 100万条,若超过限制则数据流将更新失败。

3.3 解决方案

当输出数据量超出限制时可以:

  • 减少输入源表单个数或删除输入源表单部分数据来减少输入总数据量;
  • 调整数据流配置减少输出数据量大小。

4. 输出数据量大于输入的2倍

4.1 问题说明

当执行日志中出现如下图所示的报错时,表示输出数据量超出限制导致数据更新失败。


4.2 问题原因

如下图,便会导致输出数据总量为输入数据总量的 3 倍,因此会触发输出数据量的限制,而导致数据流更新失败。


4.3 解决方案

当输出数据量超出限制时可以:

  • 减少输入源表单个数或删除输入源表单部分数据来减少输入总数据量;
  • 调整数据流配置减少输出数据量大小。

5. 横向连接配置不正确

5.1 问题说明

当执行日志中出现如下图所示的报错时,表示横向连接配置不正确。


5.2 问题原因

当数据源的表单字段删除后,若横向连接配置了该字段作为连接字段,数据流将会更新失败。

5.3 解决方案

点击更新失败的数据流,重新配置横向连接节点。


Useful?
 Yes
 No
Have these problems ?
When you need help immediately, please Contact support