2017-02-02 47 views
1

让我请您帮忙了解数据流任务的主要逻辑。我正在使用ETL将数据加载到数据仓库(staging和dwh部分)。现在,我得到一个任务来计算与现有的字段中的数据,但拥有的库存数据来计算......ETL数据流任务 - 保持计算

我需要remain_qty,Assigned_qty和in_progress_qty的正确数量。 (如图)。但目前我没有看到这个结果。得到它会很好。 查找得到清单数据清单后,我完成了计算过程。

然后检查实际的温度数据的其他查找。当它不存在临时项目,然后插入记录,否则只是一个简单的更新..用这种方法,我会做计算过程..我认为在下一个记录系统应该重新查询临时表和查询实际数据..我的意思是数量减少。按记录记录。但现在看来,这两个查找我得到了每一行相同的结果。这对我来说意味着临时表不会在数据流中重新查询。我应该使用其他数据流进行计算吗?或者我可以使用这个数据流中的临时表,它可能通过记录更新?因为我会通过记录重新查询实际库存数量。
..谢谢阅读!

+0

请重新格式化您的问题,以更好地解释,包括屏幕截图,您试图达到的目标,迄今为止尝试过的以及为什么它无法正常工作。目前不可能理解你在这里要问什么...... – iamdave

+0

对不起,你是对的。我更新了我的问题。感谢您的支持! – Messersmith

回答

0

Click here for picture! 好家伙,我已经找到了解决方案,并就ETL过程中的变化。我已经分居的数据流任务,并用于存储过程来重新计算上临时表中的数据。然后下一个数据流能够从temp中查询更新的数据,并以正确的数量和价格填充事实表。那次我已经学习了控制流程和数据流程。现在很明显,我的应用程序工作正常。感谢您的支持!

0

我感到困惑,但从我的理解你想要使用查找转换重新查询,是否正确?如果是这样,在查找转换编辑器的'常规'选项卡内部,有缓存模式的选项,默认情况下,它被标记为完整缓存。

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

每一次你可以找到更详细的信息in this link

希望它可以帮助

+0

感谢您的解决方案。我试过了,但没有解决我的问题。您能否看看我的项目中可能存在数据流问题的部分?见上面的图片3。 – Messersmith

+0

所以,我发现下面的文章:[链接](http://dbadiaries.com/t-sql-determine-the-difference-in-values-between-columns-in-different-rows)你认为什么,是否实施剩余量计算的唯一可能方法?与CTE? :)如果可能的话,也许我可以使用变量数组..我的意思是更多的项目与它的实际数量。 – Messersmith

+0

我没有看到图像中存在的逻辑问题。尽管我不是SSIS的专家,但对我来说似乎很好。也许你正在使用某种类型的包变量,在数据流任务中保存并使用新值?在数据流任务结束时,变量不会更新。这可能是一个原因。你也可以像你说的那样在2个数据流中分开它们,并以这种方式找出问题的最终方法 – Mokz