我是使用SSIS软件包的新手,并且在将数据从登陆到登台时找到delta的最佳做法感到困惑。要求是从统一数据存储(CDS)创建几个报告,从dource到Landing到Staging再到CDS的数据流作为ETL包,最后报告是从CDS构建的。
我已成功创建包以将数据从源移动到Landing,因为它们非常简单。将数据从Landing移动到Staging有点令人困惑,因为修改的日期不够,因为上次ETL运行的2次更改可以将数据返回到上一个日期的数据,这意味着自上次ETL运行以来没有任何更改。例如,值从A更改为B,然后返回到A - 表示数据已返回到原始状态,但modifiedOn列已更改。
那么,是否应将Landing中的所有列与行中的Staging中的现有列进行比较,或者仅将与提交报告相关的列进行比较?或者是否有其他方法可以找到delta?
如果不清楚或需要更多详细信息,请与我们联系。
答案 0 :(得分:1)
这是您的业务问题。我们希望他们在我们的需求文档中定义什么是delta。对于一些人来说,这只是一些领域,而对于其他人来说,这就是一切这取决于业务需求。我会把问题提交给那些给你开始要求的人。如果你能很好地掌握自己的业务,你可以在网上发送电子邮件,告知你认为三角洲会是什么,并且大部分时间他们都不需要自己解决,并接受你的建议。但只有在您真正了解与数据相关的正常业务需求时才这样做。您还可以向他们提供帮助他们决定的各种可能性。
答案 1 :(得分:0)
为什么要获得确切的增量?我的意思是,如果没有发生真正的改变,为什么你不希望已经提交给你的CDS的那一行重新提交?如果你没有商业原因(报告需要)这样做,听起来你在不需要的地方增加了复杂性。
无论如何,如果你确实需要这个,我建议你计算一些有趣列的CHECKSUM,并用旧行的校验和检查你新行的校验和。这个blog 应该可以帮助您了解如何使用校验和。