65.9K
CodeProject 正在变化。 阅读更多。
Home

SSIS 使用复制列、派生列、字符映射和条件拆分转换的回文程序

starIconstarIconstarIconstarIconstarIcon

5.00/5 (9投票s)

2011年4月28日

CPOL

4分钟阅读

viewsIcon

42447

downloadIcon

399

本文将通过一个回文示例,讨论 SSIS 中的复制列、派生列、字符映射和条件拆分转换。

引言

我一直在考虑使用复制列、派生列、字符映射和条件拆分这几个组件的组合来做一个程序。所以我想通过编写一个回文程序来尝试一下,在这个程序中我可以使用所有这些组件。

背景

转换是大多数 SSIS 生命周期中不可或缺的一部分。一旦我们拿到原始数据,转换组件的责任就是进行所需的变形,并将数据转换成所需的格式。在本文中,我们将了解 SSIS 的四种转换:复制列、派生列、字符映射和条件拆分,并看看它们如何协同工作来解决回文问题。请注意,它并没有任何现实生活中的应用,但这个例子旨在让不熟悉 SSIS 的人对这些组件的工作方式有一个初步的了解。

给定的输入

源文件数据如下所示:

Words (Column Header)
Madam
Mam
Phone
Number

预期输出

1.jpg

要执行的步骤

步骤 1

打开 Bids。从可用的项目类型中选择 Integration Services Project。将一个 Dataflow Task 拖放到控制流设计器中。

2.jpg

第二步

将一个 flat file source 拖到 Data flow 中。在连接管理器中,指定数据源并勾选“第一数据行包含列名”复选框。

3.jpg

在 Columns 选项卡中,将 Output Column Names 更改为 Original Words。

4.jpg

点击“确定”。

步骤 3:配置复制列

让我们将一个复制列拖放到数据流设计器中,然后双击它,以打开复制列转换编辑器。

复制列组件的目的是将输入列复制到新列。

5.jpg

点击“Available Input columns”复选框。为原始输入列创建一个复制列,该复制列将用于后续转换中的反转。

6.jpg

配置完成后,单击“OK”按钮。

步骤 4:配置派生列

接下来,我们将一个 **派生列组件** 拖放到设计器中,并从复制列组件到派生列组件添加 precedence constraint。此组件的目的是对输入列应用表达式。

让我们双击派生列组件,这将打开派生列转换编辑器。

7.jpg

接下来,我们进行以下配置更改:

8.jpg

让我们从“Derived Column”(图中编号 2)中选择“Replace "Reverse Word"”,并将名为“Derived Column Name”的第一个列命名为 ReverseWord(图中编号 1)。从可用的函数中,选择 string 函数类别中的 Reverse 函数,然后将其拖放到 Expression 列中。表达式将是 REVERSE (ReverseWord)(图中编号 3)。最后,确保“Data Type”列设置为 string [DT_STR]。完成后,单击“OK”按钮。

步骤 5:配置字符映射

由于反转原始数据后,大小写可能会发生变化,这将在后续比较时导致错误的结果。因此,最好以相同的大小写来比较 Original 和 Reverse Words。字符映射组件非常适合这种情况。让我们向设计器添加一个字符映射组件,并从派生列组件到字符映射组件添加数据流。双击字符映射组件以打开字符映射转换编辑器,然后按照图中所示进行以下设置。

9.jpg

设置完成后,单击“OK”按钮。

步骤 6:配置条件拆分

下一步是添加一个条件拆分组件。其目的是根据指定的条件拆分传入数据并将其路由到不同的输出。因此,在数据流设计器中添加条件拆分组件,并从字符映射组件到条件拆分组件执行 dataflow 后,双击后者以打开条件拆分转换编辑器,然后进行以下更改:

10.jpg

完成设置后,单击“OK”按钮。

步骤 7

添加两个行采样(一个用于成功,一个用于失败),并为数据流路径添加数据查看器。最终的包设计如下:

11.jpg

运行应用程序,我们将获得所需的输出。

结论

希望这个小实验能帮助我们理解如何使用复制列、派生列、字符映射和条件拆分转换组件。我们已经看到了如何配置这些组件,以及如何将它们协同工作。

感谢阅读。

历史

  • 2011 年 4 月 27 日:初次发布
© . All rights reserved.