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

SQL 11 (代号 Denali) 入门 - 第八部分 (CTP 3 中的数据质量服务 (DQS))

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (5投票s)

2011年9月3日

CPOL

17分钟阅读

viewsIcon

20409

本文将探讨数据质量服务 (DQS)——SSIS Denali CTP3 中的一项新功能。

SQL 11 (代号 Denali) 入门 - 第八部分 (CTP 3 中的数据质量服务 (DQS))

目录

  1. 引言
  2. 背景
  3. 什么是数据质量服务(DQS)
  4. DQS 的组成部分
  5. 我们在系统中安装 DQS 需要做什么?
  6. 如何连接到 DQS 客户端?
  7. 如何从头开始创建知识库?
  8. 如何向现有知识库添加更多域?
  9. 如何查看我们知识库的内容?
  10. 既然我们的知识库已完成,我们希望使用一些源数据执行清理操作。如何通过数据质量项目做到这一点?
  11. 我们如何使用相同的知识库执行数据匹配?
  12. DQS 活动监控
  13. 参考文献
  14. 结论

引言

微软在技术领域最热门、最令人惊叹的开发之一于2010年11月8日面世,当时他们发布了 **Sql Server 2011(代号 Denali)** 的社区技术预览版 1 (CTP 1)。不出所料,Denali 为 SQL 用户带来了许多新功能,无论是开发人员、管理员还是商业智能 (BI) 专业人士。 第一部分 介绍了 SSMS 中的功能和增强。 第二部分 重点介绍了 T-SQL 方面的新开发和增强功能。 第三部分 探讨了 SSIS 方面的增强,而 第四部分 则讨论了包含数据库。

但这并不是 Denali 的终点。它是一个持续的开发项目,在 CTP1 取得巨大成功后,现在是 CTP 3,于2011年7月12日发布。不出所料,Denali 正在向各个领域扩展,无论是 T-SQL 方面的增强、新的界面(Juneau)、使用 Project Crescent 的新报表工具,还是通过列存储索引等来增强数据仓库的检索。Denali 为 SQL Server 数据库带来了新的维度,本系列将探讨新的数据质量服务 (DQS)。

背景

在过去的几年里,微软为开发人员带来了许多新技术。随着 Sql Server 2005(代号 **Yukon**)的出现,SQL Server 的术语发生了巨大变化,在随后的 Sql Server 2008(代号 **Katmai**)和 Sql 11(代号 **Denali**)等版本中,通过引入新功能、增强和改进,保持了相同的步伐。在本文中,我们将探讨 Denali CTP 3 的新数据质量服务 (DQS) 功能。后续文章将关注其他领域的增强。

您可以通过以下方式阅读我关于 Denali 的其他文章:

  1. SQL 11 (代号 Denali) 入门 - 第一部分 (CTP 1 中的 SSMS 功能)
  2. SQL 11 (代号 Denali) 入门 - 第二部分 (CTP 1 中的 T-Sql 功能)
  3. SQL 11 (代号 Denali) 入门 - 第三部分 (CTP 1 中的 SSIS 功能)
  4. SQL 11 (代号 Denali) 入门 - 第四部分 (CTP 1 中的独立数据库)
  5. SQL 11 (代号 Denali) 入门 - 第五部分 (CTP 3 中的 SSIS 功能)
  6. SQL 11 (代号 Denali) 入门 - 第六部分 (CTP 3 中的 T-Sql 功能)
  7. SQL 11 (代号 Denali) 入门 - 第七部分 (CTP 3 中的列存储索引)

什么是数据质量服务(DQS)

DQS 是 SQL Server "Denali" 中的一项新功能,它为我们提供了一个基于知识的数据清理解决方案。

我们处理数据,数据很可能不正确;可能是用户输入了错误的数据,数据传输损坏等。此外,整合来自不同来源的不一致数据也是一个耗时的问题,它会影响业务,而最糟糕的受害者是客户,这反过来又会由于信誉和收入损失、客户不满等原因影响公司。手动处理也不是一个好的选择,因为它总是容易产生错误的报告,无论测量多么仔细。自动化不能保证 100% 的结果。最终,它会损害历史数据,并因此影响数据分析和报表。

为了挽救企业免于陷入此类困境,DQS 正是当下的需求。它确保高质量的数据,提高准确性、数据一致性,并解决 BI 或数据仓库或 OLTP 系统中因不良数据输入而引起的问题。

它帮助业务用户或非数据库专业人员以最少的设置或准备时间,并以出色的质量来创建、维护和执行其组织的数据质量操作。

它通过创建关于数据的知识库 (KB),然后根据知识库中的知识清理数据来提高数据质量。

知识库 (KB) 是三种知识的存储库

  1. 开箱即用的知识
  2. DQS 服务器生成的知识
  3. 用户生成的知识

一旦构建了该知识库,它就可以作为可重用的内容,可以不断改进,然后应用于多个数据质量改进过程。

KB 识别错误数据,建议对数据进行更改,查找数据匹配项、不匹配项,并能够执行数据去重。它将源数据与数据质量提供商提供的参考数据(基于云)进行比较。

数据管理员或 IT 专业人员会验证知识库中的知识和要对数据进行的更改,并执行清理、去重和参考数据服务。

数据库中的知识存储了适用于特定数据源的所有类型的知识。它们存储在数据域中,这些域甚至可以跨越,并且每个域都是数据字段中一种数据类型的语义表示。

域包含所有类型的值,如有效值、无效值和错误数据。

域知识 (DK) 包括同义词关联、术语关系、验证和业务规则以及匹配策略。通过这些 KB,IT 专业人员/数据管理员/非数据库用户可以就数据分析做出具体决定,并支持是否需要更正这些数据。

DQS 知识驱动的解决方案使用两个基本步骤来清理数据

  1. 通过知识管理过程构建知识库
  2. 根据 KB 中的知识对源数据进行的更改(如果需要满足知识语义)。这是通过数据质量项目完成的。

DQS 的组成部分

DQS 由以下组件组成:

  1. DQS 服务器。
  2. DQS 客户端。

此外,还有一个名为 DQS 清理组件 的转换组件,位于 SSIS 转换工具箱中,它可以帮助我们根据创建的知识库清理数据。

客户端和服务器组件作为 SQL Server 安装程序的一部分进行安装(Denali CTP3)。

DQS 服务器

DQS 服务器实现为两个 SQL Server 目录,我们可以在 SQL Server Management Studio 中进行管理和监控。它们是:

  1. DQS_MAIN
  2. DQS_PROJECT

DQS_MAIN 包括 DQS 存储过程、DQS 引擎和已发布的知识库。

DQS_PROJECT 包括知识库管理和 DQS 项目活动所需的数据。

包含要分析的数据的源数据库也必须与 DQS 服务器位于同一个 SQL Server 实例中。

DQS 客户端

它是一个独立的应用程序,专为数据管理员和 DQS 管理员设计,在一个用户界面中帮助执行知识管理、域管理、匹配策略创建、数据清理、匹配、监控、数据质量项目和管理。

客户端应用程序可以安装在与 DQS 服务器相同的计算机上运行,也可以远程安装在单独的计算机上运行。

我们在系统中安装 DQS 需要做什么?

要在我们的系统中安装 DQS,我们需要按照以下步骤操作。

首先应安装 Sql Server Denali CTP3。

然后我们需要找到 DQSInstaller,它通常位于 C:\Program Files\Microsoft SQL Server\MSSQL11.DENALICTP3TRY3\MSSQL\Binn\DQSInstaller.exe

1.jpg

双击 DQSInstaller.exe 并提供管理员权限,它将执行。我们需要提供数据库主密钥。完成后,它将安装,如果一切顺利,我们将收到成功消息。

2.jpg

打开 SSMS,我们会看到两个数据库 DQS_MAIN、DQS_PROJECTS,这也表明我们的 DQS 服务器已正确安装。

3_new.jpg

如何连接到 DQS 客户端?

一旦我们从 DQSInstaller.exe 正确安装,接下来连接到客户端请执行以下步骤:

转到“开始”菜单 -> “所有程序” -> “Microsoft SQL Server Denali CTP3” -> “数据质量客户端(32 位)”。单击它。

4.jpg

我们将看到 DQS 客户端窗口,如下所示:

5.jpg

单击“连接”按钮,我们将看到:

6.jpg

我们可以看出,客户端有 3 个活动区域:

  1. 知识库管理
  2. 数据质量项目
  3. Administration

1. 知识库管理

它是 DQS 客户端应用程序的核心部分。我们可以指定 DQS 在验证数据时应用的规则以及违反这些规则时采取的操作。由于它们捕获组织知识,因此它们被称为知识库。基本上它们是为域定义的规则。

知识库包含域,域是数据质量的一个组成部分。例如,一个国家域可能不包含任何缩写,并且国家名称的长度必须大于 3 个字母。现在我们可以在我们的知识库中拥有这个域,例如 CountryKB。通常,一个 KB 可以有多个域值,并且对于每个域,我们可以为其应用规则和验证。域可以是单值域或复合域(由多个字段组成)。

2. 数据质量项目

它使用 KB 通过执行数据清理和数据匹配活动来改进源数据的质量,并最终将结果数据导出到 SQL Server 数据库或 .csv 文件。

数据质量项目可以创建为清理项目或匹配项目,以执行相应活动,并且可以在同一个 KB 上执行操作。

清理是 KB 应用程序,它用于精炼 KB 中的源数据。

匹配是 KB 应用程序,它根据知识库中的匹配策略执行匹配活动,以通过识别精确和近似匹配来防止数据重复,从而帮助删除重复数据。

数据质量项目的一些好处如下:

  1. 帮助我们对 KB 执行数据清理操作
  2. 通过使用知识库中的匹配策略,帮助我们对源数据执行数据匹配操作。
  3. 提供交互式 GUI 来执行上述操作。
  4. 帮助将结果清理/匹配后的数据导出到 SQL Server 数据库或 .csv 文件。
  5. 对数据管理员/非数据库用户/IT 专业人员有用。

3. 管理

它涵盖活动监控和配置。活动监控涵盖知识库的使用和活动。配置管理一些匹配的默认参数以及与第三方参考数据库的连接。

如何从头开始创建知识库?

在本部分,我们将探讨如何从头开始创建知识库。我们的知识库将包含国家域值,规则是国家长度应大于或等于 5 且不应缩写。此外,如果用户记录中的值为“England”,则会将其更正为“United Kingdom”。

为此,让我们单击“知识库管理”类别下的“新建知识库”按钮。完成后,我们现在可以创建新的知识库。让我们输入 KB 名称,给一些描述,然后单击创建按钮。

7.jpg

完成上述步骤后,我们将进入域管理部分,在此我们需要创建一个域。

8.jpg

单击“创建域”按钮后,我们将看到“创建域”弹出窗口。我们需要输入域名称,其余保持不变。单击“确定”按钮。

9.jpg

在右侧,我们可以看到设置适用于相关域的数据质量规则的选项。

10.jpg

接下来,我们应该创建一些要应用的规则。为此,让我们单击“域规则”选项卡。

11.jpg

接下来,我们需要单击“添加新域规则”按钮来创建新的域规则。单击后,我们将看到以下屏幕:

12.jpg

输入名称、描述,并从“构建规则”下拉列表中选择“长度大于或等于”,然后将值设置为 5,如下所示。

13.jpg

此外,我们还希望应用“任何国家名称都不应缩写”的规则。为此,让我们单击“向选定的子句添加新条件”按钮。

14.jpg

从下拉列表中,让我们选择“值不包含”,并将值设置为“.”(点)。

15.jpg

之后,单击“应用所有规则”按钮。

16.jpg

单击“是”,我们将收到成功消息,表明域规则已成功应用。

17.jpg

设置完域规则后,下一步是添加域值。所以,让我们访问“域值”选项卡并单击“添加新域值”按钮。

18.jpg

现在让我们添加一些域值。请注意,如果有人输入 England,输出将更正为 United Kingdom。

19.jpg

完成后,单击“完成”按钮。

作为最后一步,我们需要单击“发布”按钮,KB(知识库)将公开可用。

20.jpg

我们可以看出,“OurTestDomain”已被创建。

21.jpg

如何向现有知识库添加更多域?

既然我们的 KB 已准备好使用一个域,我们可能希望通过添加更多域来对其进行增强。

为此,让我们从活动列表中选择“域管理”。

22.jpg

域管理窗口出现,我们可以从中向我们的 KB 添加更多域,如上所述。

我们将在此添加两个域。

a) PersonName 规则是名称不应包含任何缩写。

23.jpg

b) PersonAge 规则是年龄必须是数字。

24.jpg

单击“完成”按钮并发布 KB,如我们之前所见。

如何查看我们知识库的内容?

单击“打开知识库”按钮并选择相应的 KB,我们可以在其中找到有关 KB 的信息。

25.jpg

我们甚至可以重命名现有 KB。在我们的例子中,我们将它从“Our Test Domain”重命名为“Our Test KB”。为此,右键单击 KB 名称并选择“重命名”。

既然我们的知识库已完成,我们希望使用一些源数据执行清理操作。如何通过数据质量项目做到这一点?

如前所述,我们需要源数据来进行清理,以与我们准备的 KB 进行比较。目前,DQS 客户端支持两种类型的数据源:

  1. SQL 数据库
  2. Excel 文件

对于本次实验,让我们选择一个 Excel 文件作为我们的数据源。

首先,我们需要单击“新建数据质量项目”按钮。

26.jpg

数据质量服务窗口打开后,输入一个合适的名称 (1),从“使用知识库”下拉列表 (2) 中选择 Our Test KB。最后单击“创建”按钮 (3)。

27.jpg

现在让我们创建一个 Excel 文件(source.xlsx),其内容如下:

28.jpg

现在在 DQP 的清理项目中,将数据源更改为 Excel 文件 (1),指定文件路径 (2),并将源列映射到我们 KB 中存在的域值。

29.jpg

完成后,单击“下一步”按钮。接下来单击“开始”按钮。

30.jpg

正如我们可以得出的结论,统计数据显示 5 条记录中有 3 条无效。

单击“下一步”按钮,我们将进入“管理和查看结果”屏幕,在那里我们可以获得关于清理过程如何发生的详细分析。

31.jpg

如果我们打开相应的选项卡,我们可以找出无效值和更正后的值等。

单击“下一步”按钮,我们将进入“查看和导出数据清理结果”屏幕。在左侧,我们可以看出清理过程是如何根据域值中指定的规则完成的。

32.jpg

从上图可以看出,在创建 PersonName 域时,我们指定姓名不能缩写,因此在 Name_Reason 列中,我们得到的状态是“规则失败”。

现在让我们分析 Country 值。

33.jpg

对于 India 和 England,Country_Reason 列的值为“域值”。这是因为,当我们创建 Country Domain 时,我们在域值部分指定了这些值。对于 USA 和 U.K. 出现“规则失败”状态消息是显而易见的,因为我们指定了域规则约束为国家名称不能缩写且长度必须大于 5。对于 Vatican city,它显示为“新值”,因为它满足域规则,但该值未列在域值中。

我认为 Age 值不需要进一步解释。

34.jpg

现在是导出结果记录的时候了。在右侧的“导出清理结果”中,选择目标类型(此处为 .csv),指定文件路径和文件名(请注意,文件不应已存在。它将在运行时创建),然后单击导出按钮。

35.jpg

如果我们打开 ResultantOutput.csv,我们将得到以下内容:

36.jpg

有关数据清理的更多信息,请访问 此站点

我们如何使用相同的知识库执行数据匹配?

首先,我们需要在知识库中创建一个匹配策略。为此,让我们从活动列表中选择“匹配策略”选项。

37.jpg

然后指定 Excel 源并执行我们之前在数据清理过程中已经完成的映射。

38.jpg

请注意,我们已更改 Excel 文件内容,因为它现在包含一些重复记录。

39.jpg

完成后,单击“下一步”按钮,我们将进入“匹配策略”屏幕,在那里我们需要创建策略。匹配策略告诉我们一个或多个匹配规则,使用哪些域,一个记录与另一个记录匹配的程度如何,并指定每个域值在匹配评估中 carrying 的权重。我们可以提及规则中的匹配类型(精确或相似)以及相似的程度。此外,所有域元素的总权重必须为 100。

40.jpg

单击“创建匹配规则”按钮并指定规则名称 (1)、域名称 (2)、相似度类别 (3) 和域权重 (4)。

41.jpg

完成后,我们可以单击“下一步”按钮然后运行匹配策略规则,或者直接单击“运行匹配策略规则”按钮 (5)。

我们可以看出匹配记录的数量。

42.jpg

以及未匹配的记录。

43.jpg

我们甚至可以在匹配结果部分以饼图形式显示匹配和未匹配的记录。

44.jpg

有关数据匹配的更多信息,请参考 本文

DQS 活动监控

它涵盖知识库的使用和活动,告诉我们 KB 或数据质量项目的状态、执行的活动类型、活动的开始和结束时间等。还有一些过滤选项,我们可以通过这些选项过滤记录。

45.jpg

参考文献

a) 介绍数据质量服务

b) 数据质量服务 (DQS) FAQ

c) 数据质量服务“操作方法”视频

d) 数据质量服务

结论

在本文中,我们讨论了新的 DQS 功能,它是什么,它如何帮助组织维护历史数据,它的应用。我们还讨论了知识库,它的创建及其在数据质量项目中的用途(用于清理)。我们还看到了匹配策略是如何工作的。

上一篇文章 中,我们看到了 KB 在数据清理 SSIS 组件中的用法。

希望用户觉得它有用,我期待您的反馈!

© . All rights reserved.