执行知识发现
适用于: SQL Server
本主题描述如何通过知识发现生成知识库。 在发现过程中,Data Quality Services (DQS) 将通过计算机辅助进程对示例数据源中的数据进行分析,并且将获取的知识添加到知识库中。 可以在知识发现活动的 “管理域值” 步骤中或在域管理活动中修改和增强此知识。
知识发现是包括三个步骤的向导驱动的过程,其中每个步骤都必须完成。
开始之前
先决条件
如果你对其发现运行的源数据位于 Excel 文件中,则必须在 Data Quality Client 计算机上安装 Microsoft Excel。 否则,您在映射阶段中将无法选择 Excel 文件。 由 Microsoft Excel 创建的文件可以具有 .xlsx、.xls 或 .csv 扩展名。 如果使用 64 位版本的 Excel,则仅支持 Excel 2003 文件 (.xls);而不支持 Excel 2007 或 2010 文件 (.xlsx)。 如果您使用的是 64 位版本的 Excel 2007 或 2010,则将文件另存为 .xls 文件或 .csv 文件,或者改而安装 32 位版本的 Excel。
安全性
权限
您必须对 DQS_MAIN 数据库具有 dqs_kb_editor 或 dqs_administrator 角色,才能创建知识库。
第一步:开始知识发现
启动数据质量客户端。 有关执行此操作的信息,请参阅运行 Data Quality Client 应用程序。
如果您要对某一新知识库执行知识发现,则单击 “新建知识库”,输入名称和说明,并且指定您正基于其创建知识库的内容(如果适用)。 如果您要对某一现有知识库执行知识发现,则单击 “打开知识库”,然后选择某一知识库。
选择 “知识发现” 作为活动,然后单击 “创建” 以创建新知识库;或单击 “打开” 以打开现有知识库。
映射阶段
在 “数据源” 字段中,选择 SQL Server (默认值)或 “Excel 文件”。
注意
在此页中,您将建立与 SQL Server 或 Excel 数据源的连接,然后在数据源中的列和知识库中的域之间进行映射。 映射表显示源数据库中要进行分析以向相应域添加知识的所有列。 在数据源中的列与知识库中的域之间建立映射。
如果数据源是 SQL Server,则继续执行以下操作:
在 “数据库” 字段中,选择您要分析以创建知识库的源数据库。 文本框下拉列表将列出可用的数据库。 源数据库必须与 Data Quality Server 位于同一 SQL Server 实例中。 否则,该数据库不会显示在下拉列表中。
在 “表/视图” 字段中,选择您要分析以创建知识库的表或视图。 此表或视图应该是示例数据,而非您正对其执行数据清理或匹配的整个源数据库。 文本框下拉列表将列出可用于选定数据库的表和视图。
如果数据源是 Excel,则继续执行以下操作:
单击 “浏览” ,然后选择您要分析以创建知识库的 Excel 文件。 要选择 Excel 文件,必须在 Data Quality Client 计算机上安装 Excel。 如果未在 Data Quality Client 计算机上安装 Excel,则“浏览”按钮将不可用,你将在此文本框之下获得通知,说明未安装 Excel。
如果 Excel 文件的第一行包含标头数据,则选中 “将第一行用作标头” 复选框。
在 “映射” 表中,按如下所示将您要对其执行知识发现的每个源列映射到知识库中的某个域:
若要创建映射,首先从空行的 “源列” 中的下拉列表选择某一源列,然后从同一行的 “域” 列中的下拉列表选择某一个域(如果域存在)。 如果域不存在,则单击 “创建域” 或 “创建复合域” 来创建一个域。 有关详细信息,请参阅 创建域规则 或 创建复合域。
为每个映射都重复前面的步骤。 若要更改表中的行数,请单击 “添加列映射”,或者选择一行,然后单击 “删除所选列映射”。 如果在选定某一填充行时单击 “删除所选列映射” ,即便存在未填充的行也会删除选定的行。
注意
仅当源数据类型在 DQS 中受支持且与 DQS 域数据类型匹配时,才能将源数据映射到 DQS 域来执行知识发现。 有关支持的数据类型的详细信息,请参阅 DQS 域支持的 SQL Server 和 SSIS 数据类型。
单击 “查看/选择复合域” 可显示已定义的复合域。 如果没有已定义的复合域,则该控件将不可用。
单击 “预览数据源” 将在弹出菜单中显示您在 “表/视图” 或 “Excel 文件” 文本框中选择的数据源中的所有数据。
单击 “下一步” 可前进到知识库发现向导的 “发现” 页。 还可以选择以下项:
单击 “取消” 可终止知识发现活动,不保存所做的工作,并返回到 DQS 主页。
单击 “关闭” 将返回到 DQS 主页并且保存您的工作。 知识库对您而言将被锁定,且该知识库在 “打开知识库” 屏幕的知识库表中的状态将为 “发现 - 映射”。 单击 “关闭”后,若要执行域管理活动,您必须在 “打开知识库” 屏幕中单击 “知识发现” ,前进到 “知识库管理: 管理域字词” 屏幕,单击 “完成”,然后单击 “是” 发布该知识库,或单击 “否” 保存对该知识库所做的工作并退出。
发现阶段
单击 “开始” 分析数据源。
注意
对已在 “映射” 页上的 “映射” 表中输入的列执行发现。 将使用从发现获取的知识填充映射到每个列的域。 如果该域是某个复合域,则知识将被添加到构成该复合域的单独域。
在发现进程正在运行时,检查为每个发现步骤显示的完成状态: “重新处理记录”、 “运行域规则”和 “运行发现”。 将为上述每个阶段显示完成百分比和完成状态。
在分析完成后,验证完成统计信息下的状态行指示它已成功完成。
注意
在文件上载完成前离开屏幕将终止文件上载过程。
在分析完成后,查看 “事件探查器” 选项卡中的统计信息可查看数据的状态。 有关详细信息,请参阅 Data Profiling and Notifications in DQS。
分析完成后, “启动” 按钮将变为 “重新启动” 按钮。 单击 “重新启动” 以便再次运行分析过程。 但是,如果前一分析的结果尚未保存,则单击 “重新启动” 将导致先前的数据丢失。 若要继续,请在弹出窗口中单击 “是” 。 当分析正在运行时,不要离开页面,否则分析进程将被终止。
单击 “下一步” 可前进到知识库发现向导的 “管理域值” 页。 在此页上,您可以修改添加到知识库的域的知识。 还可以选择以下项:
单击 “取消” 可终止知识发现活动,不保存所做的工作,并返回到 DQS 主页。
单击 “关闭” 将返回到 DQS 主页并且保存您的工作。 知识库将被锁定,且该知识库在 “打开知识库” 屏幕的知识库表中的状态将为 “发现 - 发现”。 单击 “关闭”后,若要执行域管理活动,您必须在 “打开知识库” 屏幕中单击 “知识发现” ,前进到 “知识库管理: 管理域字词” 屏幕,单击 “完成”,然后单击 “是” 发布该知识库,或单击 “否” 保存对该知识库所做的工作并退出。
单击可返回到 “发现” 页。
管理数据发现结果阶段
在已执行知识发现活动后,您可以按如下所示更改值:
将域值添加到值列表中,或者选择一个值并且从列表中删除它
将域值的状态从 DQS 发现过程所指定的状态更改为正确、错误或无效状态
为错误或无效的值输入替换值
如果在创建域时设置了 “使用前导值” 属性,则将两个或更多的值设置为同义词,并更改发现过程所设置的前导值,结果是前导值将替换同义词值。
从 Excel 文件导入域值。
“值” 表显示添加到某个单一域的知识库的知识。 然后在左侧窗格的域列表中选择该域。 该字段中的列如下所示:
“值” 列显示发现过程从数据样本中的字段添加到所选域的所有值。 估测为错误的所有值都将显示为估测为正确的值的同义词。
“频率” 列显示域映射到的示例数据库字段中值的实例数。 对于复合域,仅显示其频率大于或等于 20 的那些值。 由于知识发现过程仍与示例数据库保持连接,所以可提供频率数据。 频率数据不会显示在“域管理”屏幕的“域值”选项卡上的域表中,因为域管理过程未连接到示例数据库。
“类型” 列显示值的状态,该状态由发现过程确定。 绿色对勾指示该值是正确的或已更正;红叉指示该值有误;带有感叹号的橙色三角形指示该值无效。 无效的值不符合对该域的数据要求。 有错误的值可能有效,但不是针对数据原因的正确值。
“更正为” 列显示标记为错误或无效的原始值将更改为的正确值。 DQS 可将正确值作为发现过程的结果提出。
按如下所示管理发现结果:
在左侧的 “域列表” 窗格中,选择要为其设置域值的域。 您可以执行以下操作以便修改显示的值。
通过在 “筛选器” 列表中选择状态,基于其状态显示要处于表中的结果。
通过在“查找” 文本框中输入要搜索的一个或多个字母,查找 “查找” 要检查或修改的数据。 这将突出显示在显示的任何值中出现的那些字母。
单击 “仅显示新内容” 会将在表中显示的值限制为仅限在当前会话(而非之前的会话)中发现的值。
单击 “全部展开” 按钮可在当前状态为折叠时显示任何一组同义词中的所有值,而单击 “全部折叠” 按钮可在当前状态为展开时隐藏任何一组同义词中除前导词之外的所有值。
单击 “显示/隐藏域值更改历史记录面板” 按钮可在值表的底部显示一个预览弹出窗口,该窗口显示对域值集合的最近更改。
通过将 “筛选器” 设置为 “错误”可查找 Data Quality Services 已建议的任何更正。 验证该值实际上有错误,并且 “更正为” 列中的值是适当的。
将 “筛选器” 设置为 “所有值” ,并验证值的状态是适当的。 若要更改某个值的状态,请选择该值,然后单击“将所选域值设为已更正”(对勾)按钮、“将所选域值设为错误”(叉号)按钮或“将所选域值设为无效”(三角形)按钮。
若要更改某个值的状态,请继续执行以下操作:
将所选域值设为已更正:若要将某个值的状态从“错误”或“无效”更改为“正确”,请选择该值,然后从图标栏中的向下箭头或从“类型”下拉列表中单击“将所选域值设为已更正”(对勾)。 如果有错误或无效的值与某一正确值组合在一起,则在该操作后删除该值。
将所选域值设为错误:若要将某个值的状态从“正确”或“无效”更改为“错误”,请选择该值,然后从图标栏中的向下箭头或从“类型”下拉列表中单击“将所选域值设为错误”(叉号)图标。 您可以在 “更正为” 列中输入更正值,或者将其保留为空白。
将所选域值设为无效:若要将某个值的状态从“正确”或“错误”更改为“无效”,请选择该值,然后从图标栏中的下拉列表或从“类型”下拉列表中单击 “将所选域值设为无效”(三角形)图标。 您可以在 “更正为” 列中输入更正值,或者将其保留为空白。
更正为:在将某个值设置为有错误或无效后,在 “更正为” 列中输入一个新值。 DQS 将为更换值添加一个新行,将其指定为正确,然后组合这两个值。 这个新值将显示为前导值,前导值为粗体,而有错误或无效值是缩进的。
若要将值指定为一组同义词,则选择正确的多个值,然后继续如下操作:
将所选域值设为同义词:单击可将所选值设为同义词。 DQS 会将这些值之一指定为将用来替换其他值的前导值。
注意
如果您在一个组中选择两个或更多值,并且在该组之外选择另一个值,然后将它们设置为同义词,则系统将会向您显示不正确的错误消息。 在关闭错误消息弹出窗口后,这些值将正确设置为同义词。
断开所选同义词之间的关系:单击将撤消同义词指定。
将所选域值设为其组的前导值:通过在组中选择未指定为前导值的一个值,然后单击 “将所选域值设为其组的前导值” 按钮,更改该组的前导值。
拼写检查器:如果您在“域属性”页中启用了“拼写检查器”,则查找有红色波浪下划线的所有值,有此类线条指示建议进行更正。 右键单击带下划线的值,然后选择一个更正值(如果有适用的更正)。 值类型变为(或仍保持为)错误,并且更正将被添加到 “更正为” 列。 单击向下箭头可查看其他建议的更正。 手动输入一个更正并且将其添加到拼写检查器字典,并且能够将其作为更正选择。 有关详细信息,请参阅 使用 DQS 拼写检查器 和 设置域属性。
注意
若要使用拼写检查器,您或者可以在 “域属性” 页中启用它,或者如果已在 “域属性” 页中禁用它,则可以在 “管理数据发现结果” 页中单击 “启用/禁用拼写检查器” 图标以便在该页上启用它。
添加新域值:通过单击 “添加新域值” 按钮以便在该表的底部添加一行,可以向域中添加新值。 在输入某个值后,将按字母顺序重新定位该行。
从 Excel 导入域值:通过单击 “导入值” 图标的向下箭头,然后选择 “从 Excel 导入域值”,从 Excel 电子表格添加新值。 输入文件名,根据需要选择 “将第一行用作标头” ,然后单击 “确定”。 有关详细信息,请参阅 将值从 Excel 文件导入到域。
从 Excel 导入项目值:通过单击 “导入值” 图标的向下箭头,然后选择 “从 Excel 导入项目值”,从数据质量项目添加新值。 输入文件名,根据需要选择 “将第一行用作标头” ,然后单击 “确定”。 选择您从中导入值的项目,然后单击 “确定”。 将显示导入的值。 单击“完成”。 有关详细信息,请参阅“将项目值导入到域中”。
删除所选域值:通过选择值,然后单击 “删除所选域值” 按钮,从域中删除一个或多个现有值。 无法删除 DQS_NULL 的项,因此,如果您选择要删除的多个值,并且 DQS_NULL 的项是其中之一,则操作将失败。
单击 “完成” 可完成知识发现活动。 如果您未查看每个域,将会显示一个弹出窗口。 单击 “是” 将继续查看,否则单击 “否” 。 如果您单击“否”,将显示另一个弹出窗口,支持您执行以下操作:
发布:将发布该知识库,以供当前用户或他人使用。 将不锁定该知识库,该知识库(在知识库表中)的状态将设置为空,且域管理和知识发现活动都将可用。 您将返回到主页。 若要完成该过程,请在弹出窗口中单击 “是” 。
否:将保存您的工作,该知识库将保持锁定状态,且该知识库的状态将设置为“在工作”。 域管理和知识发现活动都将可用。 您将返回到主页。
取消:弹出窗口将会封闭,并且将保持在 “管理域值” 页中。
还可以单击以下项:
单击“取消” 可终止知识发现活动,不保存所做的工作,并返回到 DQS 主页。
单击“关闭” 将在保存您的工作时返回到 DQS 主页。 知识库将被锁定,且该知识库在“打开知识库”屏幕的知识库表中的状态将为“发现 - 值管理”。
单击 “返回” 可返回到 “发现” 。 单击 “关闭”后,若要执行域管理活动,您必须在 “打开知识库” 屏幕中单击 “知识发现” ,前进到 “知识库管理: 管理域字词” 屏幕,单击 “完成”,然后单击 “是” 发布该知识库,或单击 “否” 保存对该知识库所做的工作并退出。
跟进:执行知识发现后
在计算机辅助知识发现过程中向知识库添加了知识后,您可以立即将知识库用于清理项目,或者可以在进行清理前执行域管理。 有关数据清理或域管理的详细信息,请参阅数据清理或管理域。
正确、错误和无效值的含义
“域值” 页的 “值” 表中的每个值都将被分配 “正确” 、 “错误”或 “无效”的 “类型”设置。 值的类型最初由知识发现活动生成,并且您可以在适合时更改该值。 清理活动将基于知识发现和交互更改生成最终类型。 这些设置将具有以下含义:
正确: 这是属于域并且没有任何语法错误的值。 例如,City 域中的“Chicago”是正确的。
错误: 这是属于域但不正确的值。 例如,City 域中的“Shicago”(而非“Chicago”)是有错误的。 DQS 将其检测到有语法错误的值指定为有错误并且在发现过程中指定关联的更正。 语法错误包括拼写错误。
无效: 这是不属于域并且没有更正的值。 例如,City 域中的“12345”无效。 DQS 在某个值未能通过域规则时将其指定为无效。
您可以手动将某个值的类型更改为两个其他值之一。 DQS 对手动操作不强制有效性和错误语义。 您可以为无效值输入更正而不更改其状态。 即使某个值未通过域规则,您也可以将其指定为无效。 即使发现过程未指示某个值具有语法错误,您也可以将其指定为存在错误。 您也可以删除对错误值的更正(这将标记为正确),而不更改其状态。
当您在 “清理” 活动的 “管理和查看结果” 页中执行交互式数据清理时,无效和有错误的值都将包含在 “管理和查看结果” 页的 “无效” 选项卡上。
How to Display the Appropriate Values
您可以按如下所示修改显示:
通过在“筛选器” 下拉列表中选择状态,基于其状态筛选 “筛选器” 要处于表中的结果。
通过在“查找” 文本框中输入要搜索的一个或多个字母,查找 “查找” 要检查或修改的数据。 这将突出显示在显示的任何值中出现的那些字母。
单击 “仅显示新内容” 会将在表中显示的值限制为仅限在当前会话(而非之前的会话)中发现的值。
单击 “全部展开” 按钮可在折叠当前状态时显示任何同义词组中的所有值。
单击 “全部折叠” 按钮可在展开当前状态时隐藏任何同义词组中除前导值之外的所有值。
单击 “显示/隐藏域值更改历史记录面板” 按钮可在值表的底部显示一个预览弹出窗口,该窗口显示对域值集合的最近更改。
Profiler Statistics
“事件探查器” 选项卡提供的统计信息指示源数据的质量。 这些统计信息不衡量知识库的质量。 通过知识发现中的事件探查,您可以全面了解完整性和唯一性。 知识发现中的事件探查不测量精确度。 针对知识管理的事件探查可帮助您评估数据源在生成和增强知识库中的知识的重要程度。
“事件探查器” 选项卡按字段和域提供以下有关发现过程的统计信息:
记录:在数据样本中发现了多少条记录
总计:为每个字段找到了一共多少个值以及总计多少个值
新值:自上次发现过程后对于每个字段和所有映射字段共有多少个值是新值以及这些新值占值的总数的百分比
唯一值:对于每个字段和所有映射字段共有多少个值是唯一值以及这些唯一值占值的总数的百分比
新的唯一值:自上次发现过程后对于每个字段和所有映射字段有多少个唯一值是新值以及这些唯一值占值的总数的百分比
在域值中有效:对于每个字段和所有映射字段共有多少个值是有效值以及这些有效值占值的总数的百分比
字段统计信息包括:
字段:源数据库中字段的名称
域:映射到字段的域的名称
新:字段中的新值数以及新值与现有字段相比的百分比
唯一:字段中唯一记录的数目及其占总数的百分比
在域中有效:有效的域值的数目及其占总体的百分比
完整性:针对每个匹配操作映射的每个源字段的完整性
通过知识发现中的事件探查,您可以全面了解完整性。 如果事件探查告知您字段的完整性相对较差,则您最好从数据质量项目的知识库中删除该字段。 事件探查不会提供有关复合域的可靠完整性统计信息。 如果您需要完整性统计信息,请使用单一域而非复合域。 如果您要使用复合域,则最好使用用于进行事件探查的单一域创建一个知识库以确定完整性,并使用复合域创建另一个域来执行清理过程。 例如,使用复合域时,事件探查可能对于地址记录显示 95% 的完整性,但对于其中一列(例如,邮政编码列)可能显示高得多的不完整性。 在此示例中,您可能要衡量单一域的邮政编码列的完整性。 事件探查可能为复合域提供可靠的准确性统计信息,因为您可以同时为多个列衡量准确性。 此数据的值位于复合聚合中,因此,您最好使用复合域来衡量准确性。
在以下几个阶段中在“事件探查器”选项卡中显示统计信息:
在 预处理记录 阶段中,DQS 加载数据并对其进行索引。 这是逐记录或逐批次完成的,因此可以按记录显示进度。 在执行此步骤期间,大多数事件探查数据可以生成,只有 “在域中有效” 值除外。
在 运行域值 阶段中, “在域中有效” 列将被填充,因为域规则全都作为每个域值的原子单元执行。
在“正在运行的发现”阶段,探查器选项卡中没有更新任何新数据。在向导的下一步(“管理域值”阶段)中可以看到遇到的任何语法错误。
对于知识发现活动,以下条件会导致发送通知:
在字段中没有新值;建议您从映射中消除它。
在字段中有几个新值;您最好从映射中消除它。
字段为空;建议您从映射中消除它。
字段完整性分数很低;您最好从映射中消除它。
字段中的所有值都无效;您应该验证映射以及域规则与字段内容的相关性。
字段中的有效值为低级别;您应该验证映射以及域规则与字段内容的相关性。
有关事件探查的详细信息,请参阅 DQS 中的数据事件探查和通知。