SSIS 查找替代方案

SSIS Lookup Alternatives

我一直在 SSIS 包中使用查找转换。输入 table 有大约 7500 万行,而查找 table 有大约 7000 万行。

我需要捕获匹配和不匹配的输出,以便根据需要对其进行处理。

我 运行 遇到了错误 "The attempt to add a row to data flow task buffer failed"

Inner join 是一个很好的选择,但是我不认为它可以提供两个输出,即匹配和不匹配(这就是我一开始没有使用它的原因。如果不是这样,请赐教!)

部分缓存和无缓存是替代方案,但它们比时钟上的时针慢!

能否请您推荐任何能够提供匹配和不匹配输出的 LookUp 转换替代方案?

提前致谢!

[Source_Table]
SELECT prop_code        --[varchar](6) NULL
    ,conf_nbr           --[varchar](20) NULL
    ,arrival_date       --[date] NULL
    ,system_source      --[varchar](5) NULL
    ,net_revenue        --[float] NULL
    ,net_room_nights    --[int] NULL
    ,srp_code           --[varchar](10) NULL
    ,corp_client_id     --[varchar](10) NULL
    ,rac_code           --[varchar](10) NULL
    ,ta_client_id       --[varchar](10) NULL
FROM Account_360_Stage_Prd_Reservations_CRS
ORDER BY prop_code
    ,conf_nbr

[Reference_Table]
SELECT DISTINCT property_code                                                   --[varchar](6) NOT NULL
    ,CAST(host_confirmation_number AS VARCHAR) AS 'host_confirmation_number'    --[bigint] NULL
FROM Account_360_Stage_Guest
ORDER BY property_code
    ,host_confirmation_number

[LookUp]
prop_code = property_code
conf_nbr  = host_confirmation_number

我可能会使用内部联接,但使用 case 语句来识别这两个条件。然后使用条件拆分任务根据case语句的输出拆分数据

您可以使用 LEFT OUTER JOIN,因为这会给您提供 'matched' 和 'unmatched'。然后将加入的 table 中的所有 NULL 重定向为 'unmatched'