【问题标题】:SSIS - Get non matched rows and load into Dimension TableSSIS - 获取不匹配的行并加载到维度表中
【发布时间】:2019-10-22 16:10:47
【问题描述】:

我有两张桌子。

1) 具有多列的临时表,日期是其中之一。

Date
9/1/2018

2) 一个日期维度表,只有一列称为日期

Date
1/1/2018
2/1/2018
3/1/2018
4/1/2018

我正在 SSIS 中编写一个逻辑,它使用维度表检查暂存表并在维度表中插入缺失的日期。

为此,我使用以下逻辑。

查找组件具有来自临时表的正确 1 行输入,并返回 NULL 值。因此,由于约束,插入失败。

我确实在屏幕 1 的查找中启用了将不匹配的行重定向到不匹配的输出。

请帮我解决这个问题。

【问题讨论】:

  • 我建议您不要依赖缓慢、难以维护的 SSIS 转换,而是简单地运行一个 T-SQL 查询,在数据库中为您完成所有工作。事实上……你的日历维度应该已经包含了所有的日期,不管数据是否进来。

标签: sql-server visual-studio ssis


【解决方案1】:

解决方案是更改查找操作以添加为新列:-

【讨论】:

    【解决方案2】:

    这不是问题。问题是日期超出查找范围并且是重复的。

    在插入维度之前,通过日期列上的 Aggregate [group by] 运行它。

    确保您使用的是正确的日期。您要插入的记录将没有查找匹配项(因此该列默认为空)。您甚至不应该为此用途添加查找中的任何列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多