0

我正在构建一个 SSIS 项目,以创建一个 ETL 来加载使用星型模式模型的数据仓库。

我有 3 个维度:

 - Customer (Customer_ID, Customer_Name, Email)
 - Employees (Employee_ID, Employee_Name, Salary)
 - Product (Product_ID, Product_Category)

我的事实表非常简单,只是:

- Customer_ID
- Employee_ID
- Product_ID
- Sales_Amount

我正在尝试使用 SSIS 创建一个包。为了学习如何使用 SSIS 进行增量加载,我看到了很多网络研讨会,其中许多建议我使用以下对象结构: 在此处输入图像描述

在 OLE DB 源中,我有以下查询:

SELECT a.Customer_ID,
       b.Employee_ID,
       c.Product_ID,
       sa.Sale_Amount
FROM Staging_Area_table sa
LEFT JOIN Customer a ON
sa.Customer_Name = a.Customer_Name
LEFT JOIN Employee b ON
sa.Employee_Name = b.Employee_Name
LEFT JOIN Product c ON
sa.Product_Category = c.Product_Category

我的问题是:1)它给了我一个错误:)那个:

[Lookup [61]] Error: Row yielded no match during lookup.

2)如果我想要事实表中不匹配的行,为什么我在查找对象期间放置“查找匹配输出”

3)这是加载我的事实表的好方法吗?

谢谢!!!!!

4

1 回答 1

1

回答你的第一个问题——

您收到错误是因为在常规选项卡的查找转换中选择了失败组件。所以你得到错误,因为没有匹配的行。要忽略错误,请在查找的常规选项卡中选择“将行重定向到不匹配的输出。

第二个问题 - 需要进行许多查找,因为我们必须确保在加载事实表之前所有维度都存在。

第三个问题 - 是的,这是许多人遵循的方法。

于 2017-07-10T17:02:11.200 回答