对具有不同列的目标使用多重转换

时间:2011-06-02 11:20:38

标签: ssis

多播转换任务有什么用?通过此任务,是否可以从单个源发送到两个目标,而每个目标具有不同的列?

2 个答案:

答案 0 :(得分:8)

我假设您在数据流任务中引用Multicast Transformation。如果是的话,是的,这是可能的。转换的目的是将数据从单个源传递到n个转换任务或目标

如果来源有以下列

Source
Column 1
Column 2
Column 3

和目的地有这些列。

Destination 1   Destination 2
Column 1        Column 2
Column 3

两个目的地都可以看到Source中可用的第1 - 3列。您必须在相应的目的地中相应地映射列。请参阅以下示例:

示例:

  1. 屏幕截图# 1 表明Source有两列标题
  2. 屏幕截图# 2 表明Destination 1的列标题。它们相应地进行了映射。
  3. 屏幕截图# 3 表明Destination 2只有标题列。它会相应地进行映射。
  4. 屏幕截图# 4 显示示例包执行。
  5. 希望有所帮助。

    屏幕截图#1:

    1

    屏幕截图#2:

    2

    屏幕截图#3:

    3

    屏幕截图#4:

    4

答案 1 :(得分:4)

@Siva在解释方法方面做得很好。我将解决“组播转换任务有什么用?”问题

让我举例说明我是如何使用它或看到它使用的。首先,我们希望将数据存储在仅包含原始未更改数据的临时表中(这使我们更容易研究数据问题,以查看数据问题是来自我们流程中的错误还是来自客户端发送的错误数据。)同时我想将相同的数据发送到另一个用于转换数据的临时表。

有时我们使用Mulitcast来获取非规范化文件并将它们发送到规范化数据表。所以名字转到人员表,地址转到地址表,电话转到电话表。

多播可以用于同时对同一源中的不同数据字段进行多种不同的转换,而不是一次一个,然后在Merge连接中将所有修改后的数据重新组合在一起。因此,一条路径检查状态以确保它们有效或将长名称转换为2字符缩写,另一条路径检查邮政编码并添加由于数据来自Excel文件而丢失的前导零。然后将清理后的地址数据与我们想要插入数据库的正确值一起放回。这可以加速清洁,因为数据同时被擦除而不是一步一步。