ETL数据流任务——剩余计算

ETL dataflow task - remain calculation

请大家帮忙理解数据流任务的主要逻辑。我正在使用 ETL 将数据加载到数据仓库中(暂存和 dwh 部分也是如此)。现在我有一个任务是用现有字段计算数据,但必须按库存数据计算...

我需要 remain_qty、Assigned_qty 和 in_progress_qty 的正确数量。 (如图所示)。但目前我没有看到这个结果。得到它会很棒。 我在查找获取库存数据列表后进行了计算过程。

然后再检查一次实际的临时数据。当它不存在于 temp by item 时,然后插入记录,否则只是一个简单的更新..用这种方法我会做计算过程..我认为在下一个记录系统应该重新查询 temp table 并查询实际数据.. 我的意思是数量减少了。逐条记录。但是现在它看起来在这两次查找之后我对每一行都得到了相同的结果。这对我来说意味着 temp table 不会在数据流内部重新查询。我应该使用其他数据流进行计算吗?或者我可以在这个数据流中使用 temp table ,它可以由记录更新吗?因为我会按记录重新查询实际库存数量..
..感谢阅读!

我很困惑,但根据我的理解,您想 re-query 使用查找转换,对吗?如果是这样,在 'General' 选项卡内的查找转换编辑器中,有 缓存模式 的选项,默认情况下,它被标记为完全缓存。

  1. Full Cache 意味着在数据流内部做任何事情之前 任务,数据库查询一次,保存在内存中。所以当你 尝试在数据流任务中使用查找转换,它将 只使用内存中保存的数据。
  2. 第二个选项是Partial Cache,先查询一些数据再做 一个转换,如果在那里没有找到,查询 重新找数据库。
  3. 最后是No Cache模式,在这里查询 数据库每次处理一行

您可以找到更详细的信息in this link

希望对您有所帮助

Click here for picture! 大家好,我找到了一个解决方案并对 ETL 过程进行了更改。我已经分离了数据流任务并使用存储过程 re-calculate 临时 table 上的数据。然后下一个数据流能够从 temp 查询更新的数据,并用正确的数量和价格填充事实 table。那段时间我学习了控制流和数据流的过程。现在我很清楚了,应用程序运行良好。感谢支持!