我正在SSIS中进行一些ETL,以构建一些维度数据集。其中之一是约会。在为维度生成一组日期时,我可以对日期维度中已有的内容进行查找,并重定向任何失败的对象(假定它们是新日期,然后将其添加到表中)。

问题是我拥有的数据集本身可能包含重复的日期。当插入尺寸表时,这将导致唯一日期键产生错误。因此,我正在寻找一种在SSIS管道中加载的数据集中进行过滤的方法。

我可以在初始加载日期时使用DISTINCT,但是在这种情况下,该日期为DATETIME。我稍后需要使用数据转换转换,只需获取日期部分即可将其转换为DATE。我正在寻找与众不同的日子,而DATETIME上与众不同的日子不会给我那么多。

我不能像以前那样使用SSIS查找,因为这需要指向数据库的连接管理器。

我可以告诉OLE DB目标不使用批量插入忽略任何错误。但是,这假定唯一的错误是重复的日期。

我对SSIS还是很陌生,还无法找到可以与集合中其他行进行比较的转换工具。

最佳答案

您可以使用“排序转换”并选择“删除重复项”,也可以使用“聚合”转换并仅使用“分组依据”(或多或少类似于DISTINCT)。请注意,这些操作是异步的,这意味着所有行在继续之前都必须进入此任务,而同步任务只是在进来时吞噬并吐出行的缓冲区。

关于sql - 从SSI中已加载的数据集中过滤出重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8243721/

10-12 21:35
查看更多