我将如何在 SSIS 数据流中实现此查询?
Posted
技术标签:
【中文标题】我将如何在 SSIS 数据流中实现此查询?【英文标题】:How would I implement this query in an SSIS dataflow? 【发布时间】:2014-05-21 20:08:10 【问题描述】:所以我在执行 SQL 任务中做了一些事情,但我的项目经理宁愿在数据流任务中看到它。
INSERT INTO [dbo].[lookup_product]
([dim_global_data_source_id]
,[source_product]
,[source_product_type]
,[source_grade]
,[source_gauge]
,[source_width]
)
SELECT distinct
dim_global_data_source_id,
product_desc,
product_type,
grade,
gauge,
size1
FROM Staging_informix_Coil_is
where not exists
(select source_product
from lookup_product
where lookup_product.dim_global_data_source_id = Staging_informix_Coil_is.dim_global_data_source_id
and isnull(lookup_product.source_product,'') = isnull(Staging_informix_Coil_is.product_desc,'')
and lookup_product.source_product_type = Staging_informix_Coil_is.product_type
and isnull(lookup_product.source_grade,'') = isnull(Staging_informix_Coil_is.grade,'')
and isnull(lookup_product.source_gauge,0) = isnull(Staging_informix_Coil_is.gauge,0)
and isnull(lookup_product.source_width,0) = isnull(Staging_informix_Coil_is.size1,0)
)
`
这就是查询。我在工作流程中需要这个。有人帮助我或给我一个样品
【问题讨论】:
你卡在哪里了? 在心理上解析您的查询,您似乎正在尝试将数据加载到一个表中,我希望它不存在。您是否需要检测源和目标之间的变化,或者检查业务密钥是否足够? Bingle Andy Leonard ssis 增量负载模式或通过此处的 ssis 问题更努力地查找示例 所有表都存在。我基本上只需要通过查找来查找我的暂存表。如果暂存表的值在查找中不存在,则填充查找。我想我卡住的地方是如何引用查找并检查记录是否存在。然后插入这些记录。 实施查找解决方案后,请确保对两种方法的性能采取一些良好的衡量标准,如果有任何注意事项,请提交给您的项目经理。 【参考方案1】:我和你的项目经理一起做这个。我会创建一个数据流任务。第一个组件是 OLE DB 源,仅包含您的第一个 SELECT(无 WHERE 子句)。
下一个组件是 Lookup,从 lookup_product 中选择您需要匹配的列。在 Columns 选项卡上,我将匹配 WHERE 子句中的列。在常规选项卡上,我会将其设置为将行重定向到不匹配输出。
最后一个组件是一个 OLE DB 目标,指向 lookup_product 表。我会使用 No Match 输出将其连接到 Lookup。
【讨论】:
以上是关于我将如何在 SSIS 数据流中实现此查询?的主要内容,如果未能解决你的问题,请参考以下文章
SSIS - 如何将电源查询的输出导入数据流中的另一个电源查询