WEB开发网
开发学院数据库MSSQL Server SQL Server 2005 数据转换服务中的模糊查找和模糊... 阅读

SQL Server 2005 数据转换服务中的模糊查找和模糊分组

 2007-11-11 05:13:34 来源:WEB开发网   
核心提示:一、简介 由于拼写错误、截断、缺少或插入的标记、空字段、意外的缩略语和其他不规则问题,实际的数据是“有问题”的,SQL Server 2005 数据转换服务中的模糊查找和模糊分组, 因此,在数据仓库项目中,模糊查找还输出可信度和相似性百分比, 有关更多关于可信度和相似性百分比的信息,很大一部分的时间和金钱都花费在了提取

一、简介

由于拼写错误、截断、缺少或插入的标记、空字段、意外的缩略语和其他不规则问题,实际的数据是“有问题”的。 因此,在数据仓库项目中,很大一部分的时间和金钱都花费在了提取、转换和加载 (ETL) 阶段。 在 ETL 阶段,新数据被清理、标准化,并使其与现有数据一致。 在 Microsoft sql server(WINDOWS平台上强大的数据库平台)?2005 中可用的模糊查找和模糊分组转换,有助于使 ETL 过程在遇到若干种在实际数据中观测到的常见错误时更易复原。 它们解决一般的匹配和分组问题,而无需特定于域的规则和脚本的专家集合。 通过为您的域自定义模糊查找和模糊分组,您可以利用数据转换服务 (Data Transformation Services,DTS) 设计器内的通用数据清理算法,并避免创建复杂的自定义规则和代码。

模糊查找使得您能够将输入记录与引用表中的无错的、标准化的记录匹配。 匹配过程对于在输入记录中存在的错误有复原功能。模糊查找返回最相近的匹配并指出匹配的质量。 例如,由于输入数据中的录入错误或其他错误,在一次新的销售交易中输入的客户信息(名称和地址)可能与包含所有当前客户的客户引用表中的任何记录都不完全匹配。即使不存在完全匹配,模糊查找也会从客户引用表返回最佳匹配记录,并提供度量值以表明匹配质量。

模糊分组使您能够标识一个表中的记录的组 — 在这个表中每个组都可能对应相同的实际实体。 分组对在实际数据中观测到的常见错误有复原功能,因为每组中的记录可能彼此不相同但彼此很相似。 例如,对于将一个客户引用表中描述每个实际客户的所有记录归类到一起,模糊分组是很有用的。

模糊查找和模糊分组为复杂的、常遇到的数据清理问题提供易用的解决方案。 尽管它们与现有的诸如 soundex、基于规则的系统、基于编辑距离的系统及全文搜索等现有方法有一些联系,但是模糊查找和模糊分组有一些优势:

模糊查找和模糊分组使用一个自定义的、考虑编辑距离(例如,“hits”与“bit”的距离为 2)、标记数、标记顺序以及相对频率的独立于域的距离函数。 结果,与全文搜索相比,模糊查找和模糊分组获得的辨别力要精细得多,因为它们捕获了更详细的数据结构。

由于它们完全是标记驱动的,模糊查找和模糊分组不像 soundex 那样有依赖于语言的组件。

因为它们不只使用编辑距离,模糊查找和模糊分组不容易被变换误导,而且与只使用编辑距离的方法相比,能够检测出更高级的模式。

模糊查找和模糊分组紧密集成在 DTS 中,这使它们对 sql server(WINDOWS平台上强大的数据库平台) 2005 的 ETL 任务来说易于使用,而且无需或只需很少的自定义编程。

下面的部分提供了使用并了解模糊查找和模糊分组的分步指南,并且包括了这些转换的一些实现和性能方面的内容,这对用户来说很有用。 本文意在通过更详细地解释模糊查找和模糊分组的某些方面来补充在线书籍。 有关更多关于选项和配置参数方面的信息,请参阅在线书籍项。 这些项包括的信息有:列宽、层次结构、标记处理选项以及其他有用的参数,这些参数提供一些方法,以加入可用来提高某些方案的准确性的域知识。

二、模糊查找入门

模糊查找可以通过使用损坏的或不完整的字符串关键字查找大型表中的数据。 例如,如果您想要按名称和地址查找客户信息,您可以使用模糊查找来查找这些信息,即使您的输入与您的引用表中所存储的记录并不完全匹配。 用于模糊查找的最简单的包是由包含一个源、一个模糊查找转换和一个目标的单个 DTS 数据流任务组成(图 1)。

sql server<font class=reblank  style=(WINDOWS平台上强大的数据库平台) 2005 数据转换服务中的模糊查找和模糊分组(1)(图一)" />

1. 最简单的模糊查找包

要构造最简单的模糊查找包:

1.

打开 DTS 设计器。

2.

创建一个新的 ETL 项目,添加一个新包,单击 Data Flow 选项卡,然后接受 add a data flow 项选项。

3.

在数据流图上,从 Toolbox 拖动 OLE DB 源和目标转换,然后通过使用一个模糊查找的实例连接它们。

4.

通过选择一个连接和包含有问题的数据的输入表,将 OLE DB 源指向您的新数据。 您的数据必须包含一些字符串列。

5.

双击 Fuzzy Lookup 打开自定义用户界面 (UI)。 从 Reference table name 下拉菜单选择您希望转换的连接和表,指向已经存储的引用数据。

6.

Columns 选项卡上,将您想要比较的项从 Available Input Columns(来自 OLE DB 源)拖动到 Available Lookup Columns(来自引用表)。 例如,您可能希望将输入中的 StreetAddress 与引用表中的 Address 相比较。

7.

Available Lookup Columns 中的所有项选择复选框,然后单击 OK

8.

OLE DB 目标指向您可以为其编写新表的连接,然后单击 New。 接受默认创建语句,现在您已经准备好运行模糊查找了。

9.

要运行您刚刚创建的包,在“解决方案资源管理器”窗口中鼠标右击其名称,然后选择 Execute

DTS 设计器运行此包,并提供关于管道的详细的可视反馈。 取决于引用数据的大小,您可能会注意到在容错索引 (Error-Tolerant Index,ETI) 创建时的延迟。 ETI 是模糊查找在运行时使用的主数据结构。

在 ETI 创建后,所有输入行都被处理然后结果被写入到目标。 通过显示由每个组件处理的行数,DTS 设计器为您提供关于管道进度的反馈。 您也可以通过鼠标右击模糊查找和 OLE DB 目标之间的连接器将一个 DataViewer 放置在管道上。 这允许您实时看到那些模糊查找与您的输入行匹配的行。 除了匹配元组,模糊查找还输出可信度和相似性百分比。 有关更多关于可信度和相似性百分比的信息,请参阅本文后面的解释结果。

1 2 3 4  下一页

Tags:SQL Server 数据

编辑录入:coldstar [复制链接] [打 印]
赞助商链接