SSIS 模糊分组转换

SSIS 中的模糊分组转换用于将输入错误的数据替换为正确的数据。例如,如果有 98 人将国家名称输入为 India,而有两人输入为 Indi,则模糊分组转换会将 Indi 替换为 India。

在我们开始配置 SSIS 模糊分组转换之前,让我们先看看它的某些重要属性。

  • 此 SSIS 模糊分组转换使用分组技术来替换源数据中的错误单词,并将其更正为正确的单词。
  • 此转换允许我们仅使用 DT_WSTR 和 DT_STR 数据类型列进行模糊匹配,精确匹配可应用于除 DT_TEXT、DT_NTEXT 和 DT_IMAGE 之外的任何数据类型。
  • 它在运行时在 SQL Server 数据库中创建临时表和索引。
  • 此转换将仅使用 OLE DB 连接管理器来建立连接,以存储临时表和索引。
  • 要配置转换,您必须为输入列选择匹配类型(模糊或精确)。

提示:SSIS 中的模糊分组转换有一个输入和一个输出。它不支持错误输出。

此转换与模糊查找转换相同。但是,SSIS 模糊分组转换不需要任何参考表来更正数据。它将使用分组技术来检查输入错误的单词(输入错误)并进行更正。

SSIS 中的模糊分组转换示例

在此示例中,我们将向您展示如何配置 SSIS 模糊分组转换以更正输入错误的单词(输入错误)。

我们将用于此模糊分组转换的数据是

Source Data

步骤 1:打开 BIDS,将数据流任务从工具箱拖到控制流,并将其重命名为 SSIS 中的模糊分组转换。

Data Flow Task

双击它,SSIS 将打开数据流选项卡。有关更多转换>> 点击此处

步骤 2:从工具箱将 OLE DB 源、模糊分组转换拖放到数据流区域。

SSIS Fuzzy Grouping Transformation 2

步骤 3:双击数据流区域中的 OLE DB 源。它将打开连接管理器设置,并提供选择表或空间来编写我们的语句的选项。

OLE DB Source DB and Table

在这里,我们选择 Employees 数据库作为源数据库,将 [Fuzzy Source] 作为表。

步骤 4:单击“列”选项卡以验证列。在此选项卡中,您可以取消选中不需要的列。

Source Columns 4

步骤 5:右键单击 SSIS 模糊分组转换,这将打开“编辑器”窗口进行配置。

我们必须在“连接管理器”选项卡中配置 OLE DB 连接管理器设置。模糊分组转换将在该源内创建临时表和索引以进行操作。

SSIS Fuzzy Grouping Transformation 5

步骤 6:我们必须在“列”选项卡中配置匹配类型。您必须选择要作为模糊匹配类型分组的列,以及其他列作为精确匹配。对于此 SSIS 模糊分组转换示例,国家名称是字符串,我们希望在此列中查找错误值。因此,将匹配类型更改为模糊,而 Cid 是 Int 值,因此匹配类型为精确。

Fuzzy Grouping Transformation in SSIS 6

配置模糊分组转换时,有两个参数很重要。它们是数字和比较标志。

比较标志

从下面的屏幕截图,您可以看到其中的可用选项。

  • 忽略大小写:如果选中此选项,模糊分组将忽略大小写。XYZ 和 xyz 将相同。
  • 忽略假名类型:SSIS 模糊分组的此选项将忽略日语平假名和片假名之间的区别。
  • 忽略非空格字符:如果选中此选项,模糊分组将忽略变音符号和字符之间的区别。
  • 忽略字符宽度:如果选中此选项,模糊分组将忽略单字节和双字节字符之间的区别。
  • 忽略符号:模糊分组将忽略字母和符号(空格、标点符号、货币符号和数学符号)之间的区别。例如,*xy 被视为与 xy 相同。
  • 将标点符号排序为符号:模糊分组将所有标点符号(撇号和连字符除外)排在字母之前。例如,.xyz 将排在 xyz 之前。
Fuzzy Grouping Transformation in SSIS 7

数字

在此选项中,我们在比较列数据时必须指定开头和结尾数字的重要性。例如,如果前导数字很重要,“93 New Lands Street”将不会与“99 New lands Street”分组。

描述
两者皆无在分组时忽略开头和结尾位置的数字。
前导在分组时不会忽略开头和结尾位置的数字。
尾随在分组时忽略结尾位置的数字。
前导和尾随在分组时不会忽略开头和结尾位置的数字。
Fuzzy Grouping Transformation 8

步骤 7:在“高级”选项卡中,我们必须配置相似度阈值。相似度阈值范围在 0 到 1 之间,其中 1 是精确匹配。SSIS 模糊分组转换编辑器提供了一个滑块来在 0 和 1 之间调整相似度。如果相似度阈值接近 1,源列应更准确地匹配参考数据。

在此示例中,我们正在对国家名称进行模糊分组并查找模糊匹配。如果我们给出 0.76 的相似度阈值,字符串列值应匹配 76% 以上。只有这样,它才会被视为有效记录。

Fuzzy Grouping Transformation 9

SSIS 模糊分组转换除了现有列之外,还会生成附加列,它们是:

  • 输入键列名:为输入键列提供唯一名称。key_in是默认名称。
  • 输出键列名:为输出键列提供唯一名称。key_Out是默认名称。
  • 相似度得分列名:为相似度得分列提供唯一名称。_score 是介于 0 和 1 之间的值。它将指示输入行与规范行的相似度。

目前,我们将其保留为默认值,然后单击“确定”以完成模糊分组转换的配置。现在,将 OLE DB 目标拖放到数据流区域。

步骤 8:现在,我们必须提供目标的服务器、数据库和表详细信息。因此,双击 OLE DB 目标并提供所需信息。

Destination Table Editor 10

在这里,我们选择SQL Server 中的数据库作为我们的目标数据库,将 [Fuzzy Grouping Transformation Output] 表作为我们的目标表。

步骤 9:单击“映射”选项卡以检查源列是否已准确映射到目标列。

Column Mapping

步骤 10:单击“确定”以完成 SSIS 模糊分组转换包的设计。让我们运行该包。

Fuzzy Grouping Transformation in SSIS 12

评论已关闭。