You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSIS ETL中如何将异源数据列追加到每行而非新增行

解决SSIS跨数据源追加列不新增行的方案

需求背景:需将单条2列的COMMONS_DEF_CATALOGOS表数据,横向追加到4行的MSC_CTAA_SUCURSAL_DEPENDENCIA表每一行末尾,不产生新增行。

错误原因说明

之前使用UNION ALL、MERGE组件出现新增行的核心原因是:这两类组件均为行级纵向合并工具,仅适用于将两个数据源的行做上下拼接,无法满足横向追加列的需求。

可行解决方案

方案1:SSIS数据流组件实现(无需修改查询逻辑)

  • 首先为COMMONS_DEF_CATALOGOS数据源添加缓存转换组件,将其输出的2个外键字段写入内存缓存,单条记录无性能损耗。
  • 在MSC_CTAA_SUCURSAL_DEPENDENCIA数据源的输出流后添加查找转换组件:
    1. 连接模式选择「缓存连接管理器」,关联上一步创建的COMMONS字段缓存
    2. 匹配规则选择「忽略无匹配项」,无需配置关联条件(仅单条缓存记录所有行均可匹配)
    3. 在输出列配置中勾选需要追加的2个外键字段,即可完成所有MSC行的列追加,最终输出仍为4行数据。

方案2:SQL层面预查询实现(性能更优)

如果两个数据库在同一实例、或已配置跨库访问链接,可直接在MSC数据源的查询语句中通过CROSS JOIN完成列追加,无需额外配置SSIS组件:

SELECT 
  m.*,
  c.外键字段1,
  c.外键字段2
FROM 源库名.dbo.MSC_CTAA_SUCURSAL_DEPENDENCIA m
CROSS JOIN 跨库名.dbo.COMMONS_DEF_CATALOGOS c

该语句会自动将仅有的1条COMMONS记录的字段追加到每一条MSC记录末尾,直接输出查询结果到平面文件即可。

内容的提问来源于stack exchange,提问作者bojackhorseman99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:51:01