本文描述了 sql server 2005 数据转换服务 (data transformation services,dts) 中的模糊查找转换和模糊分组转换。模糊分组转换对于在目标数据库提高数据质量很有作用。 模糊查找将“有问题”的输入(由于拼写错误、截断、缺少或插入的标记、空字段、意外的缩略语和其他不规则问题造成的)与引用表中的无错记录相匹配。模糊分组检测输入行之间的相似性,并通过使用其字符串值确定哪些行是重复项。模糊查找和模糊分组是有用的基元,能够简化多种在数据仓库中经常遇到的数据清理和准备任务。 通过为您的域自定义模糊查找和模糊分组,您可以利用 dts 设计器内的常规搜索和聚集算法而避免复杂的自定义代码。
注 本文所指的是 sql server?2005 beta 2 版,在最终版本之前内容可能会更改。
由于拼写错误、截断、缺少或插入的标记、空字段、意外的缩略语和其他不规则问题,实际的数据是“有问题”的。 因此,在数据仓库项目中,很大一部分的时间和金钱都花费在了提取、转换和加载 (etl) 阶段。 在 etl 阶段,新数据被清理、标准化,并使其与现有数据一致。 在 microsoft sql server?2005 中可用的模糊查找和模糊分组转换,有助于使 etl 过程在遇到若干种在实际数据中观测到的常见错误时更易复原。 它们解决一般的匹配和分组问题,而无需特定于域的规则和脚本的专家集合。 通过为您的域自定义模糊查找和模糊分组,您可以利用数据转换服务 (data transformation services,dts) 设计器内的通用数据清理算法,并避免创建复杂的自定义规则和代码。
模糊查找使得您能够将输入记录与引用表中的无错的、标准化的记录匹配。 匹配过程对于在输入记录中存在的错误有复原功能。模糊查找返回最相近的匹配并指出匹配的质量。 例如,由于输入数据中的录入错误或其他错误,在一次新的销售交易中输入的客户信息(名称和地址)可能与包含所有当前客户的客户引用表中的任何记录都不完全匹配。即使不存在完全匹配,模糊查找也会从客户引用表返回最佳匹配记录,并提供度量值以表明匹配质量。
模糊分组使您能够标识一个表中的记录的组 — 在这个表中每个组都可能对应相同的实际实体。 分组对在实际数据中观测到的常见错误有复原功能,因为每组中的记录可能彼此不相同但彼此很相似。 例如,对于将一个客户引用表中描述每个实际客户的所有记录归类到一起,模糊分组是很有用的。
模糊查找和模糊分组为复杂的、常遇到的数据清理问题提供易用的解决方案。 尽管它们与现有的诸如 soundex、基于规则的系统、基于编辑距离的系统及全文搜索等现有方法有一些联系,但是模糊查找和模糊分组有一些优势:
| • | 模糊查找和模糊分组使用一个自定义的、考虑编辑距离(例如,“hits”与“bit”的距离为 2)、标记数、标记顺序以及相对频率的独立于域的距离函数。 结果,与全文搜索相比,模糊查找和模糊分组获得的辨别力要精细得多,因为它们捕获了更详细的数据结构。 |
| • | 由于它们完全是标记驱动的,模糊查找和模糊分组不像 soundex 那样有依赖于语言的组件。 |
| • | 因为它们不只使用编辑距离,模糊查找和模糊分组不容易被变换误导,而且与只使用编辑距离的方法相比,能够检测出更高级的模式。 |
| • | 模糊查找和模糊分组紧密集成在 dts 中,这使它们对 sql server 2005 的 etl 任务来说易于使用,而且无需或只需很少的自定义编程。 |
下面的部分提供了使用并了解模糊查找和模糊分组的分步指南,并且包括了这些转换的一些实现和性能方面的内容,这对用户来说很有用。 本文意在通过更详细地解释模糊查找和模糊分组的某些方面来补充在线书籍。 有关更多关于选项和配置参数方面的信息,请参阅在线书籍项。 这些项包括的信息有:列宽、层次结构、标记处理选项以及其他有用的参数,这些参数提供一些方法,以加入可用来提高某些方案的准确性的域知识。
模糊查找可以通过使用损坏的或不完整的字符串关键字查找大型表中的数据。 例如,如果您想要按名称和地址查找客户信息,您可以使用模糊查找来查找这些信息,即使您的输入与您的引用表中所存储的记录并不完全匹配。 用于模糊查找的最简单的包是由包含一个源、一个模糊查找转换和一个目标的单个 dts 数据流任务组成(图 1)。
图 1. 最简单的模糊查找包
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器