我正在SSIS中做一些ETL来构建一些维度数据集。其中一个是约会。在为维度生成一组日期时,我可以使用查找日期维度中已有的日期并重定向任何失败的日期,这些日期将被假定为新日期,然后添加到表格中。
问题是我得到的数据集本身可能包含重复的日期。插入维度表时,这将导致唯一日期键出错。所以我正在寻找一种在SSIS管道中加载的数据集中进行过滤的方法。
我可以在初始加载日期时使用DISTINCT,但在这种情况下的日期是DATETIME。我需要稍后使用数据转换转换,只需获取日期组件即可将其转换为DATE。我正在寻找独特的日子,DATETIME上的一个独特的日子不会给我这个。
我不能像以前那样使用SSIS查找,因为它需要一个指向数据库的连接管理器。
我可以告诉OLE DB目标不使用批量插入忽略任何错误。然而,这假设唯一的错误是重复日期。
我是SSIS的新手,并且无法找到允许我与集合中的其他行进行比较的转换工具。
答案 0 :(得分:7)
您可以使用排序转换并选择删除重复项,也可以使用聚合转换并仅使用group by(它或多或少类似于DISTINCT)。请注意,这些操作是异步的,这意味着所有行必须在它们继续之前进入此任务,而不是同步任务只是在它们进入时吃掉并吐出行的缓冲区。