sql-server – SSIS平面文件Unpivot

我有一个相当复杂的平面文件,我正在尝试使用SSIS解析.平面文件的整体结构如下:

顾客姓名,
CustomerAddress,
CustomerContactInfo,
InvoiceDate1,
InvoiceAmount1,
InvoiceDate2,
InvoiceAmount2,
InvoiceDate3,
InvoiceAmount3

我正在尝试将其加载到我的数据库中的两个表,一个Customer表和一个Invoice表. CustomerName,CustomerAddress和CustomerContactInfo都需要插入到customer表中. InvoiceDate1和InvoiceAmount1需要是Invoice表中的一行,其中包含Customer表的外键. InvoiceDate2和InvoiceDate3也是如此.

我尝试仅使用unpivot转换,但它也想要对客户进行疏忽,我不能这样做.在SSIS中有一个很好的方法来处理这个问题吗?

最佳答案 在数据流中,您可以使用多播组件沿多个路径发送数据. Source组件添加Multicast组件之后.从一个Multicast输出发送数据到Customer表.您可以忽略任何后续组件中未使用的列.

在Multicast的第二个输出中,附加Unpivot转换.让它忽略您不希望包含在“发票”表中的所有列.然后,它将仅处理将添加到表中的列.

点赞