创建复合域
本主题介绍如何在 Data Quality Services (DQS) 的知识库中创建复合域。 复合域由应用于单个数据字段的一个或多个单一域组成。 有关复合域的详细信息,请参阅管理复合域。
可以通过两种方法创建新的复合域。 第一种方法是在知识发现活动的“映射”步骤期间,当您正在分析数据示例以便将知识添加到新的或现有的知识库中时。 第二种方法是在域管理活动中,当您创建新域(而非更改现有域)时。 为了创建复合域,您必须已至少创建了两个要添加到该复合域中的单一域。 当您创建新的复合域时,只能使用已创建但尚未添加到现有复合域中的那些单一域。 无法将一个单一域添加到多个复合域中,并且一个复合域无法添加到另一个复合域中。
在创建复合域后,您可以更改复合域的属性,将引用数据服务添加到域中,创建跨域规则,或创建值关系。 为此,在 “域管理” 页的 “域” 列表中选择复合域,然后选择适当的选项卡。
开始之前
先决条件
为了创建复合域,您必须已创建并打开了一个知识库,而且至少创建了两个要添加到复合域中的单一域。
安全性
权限
您必须对 DQS_MAIN 数据库具有 dqs_kb_editor 或 dqs_administrator 角色,才能创建复合域。
在知识发现活动中创建复合域
启动数据质量客户端。 有关执行此操作的信息,请参阅运行 Data Quality Client 应用程序。
在Data Quality Client主屏幕中,单击“打开知识库然后选择一个知识库,或单击”新建知识库“并输入新知识库的属性。
选择 “知识发现” 作为活动,然后单击 “创建” 以创建新知识库;或单击 “打开” 以打开现有知识库。
在 “映射” 页上,指定到数据源的连接。 有关详细信息,请参阅 Perform Knowledge Discovery。
在 “映射” 表中,从某个空行的 “源列” 列的下拉列表中选择一个源列。 确保源列包含由两个现有单一域组成的复合域。 如果相应的单一域不存在,请单击 “创建域” 图标。
在 “映射” 表中,从某个空行的 “源列” 列的下拉列表中选择一个源列。 确保源列包含由两个现有单一域表示的复合域的一部分。 如果相应的单一域不存在,请单击 “创建域” 图标以创建单一域。 有关详细信息,请参阅 创建域。
单击 “创建复合域” 图标。
在域管理活动中创建复合域
在 Data Quality Services 客户端主页中,单击 “打开知识库” ,然后选择知识库;或单击 “新建知识库” 并输入新知识库的属性。
选择 “域管理” 作为活动,然后单击 “创建” 以创建新知识库;或单击 “打开” 以打开现有知识库。
确保复合域所需的两个或多个单一域存在。 否则,请单击 “创建域” 图标并创建它们。 有关详细信息,请参阅 创建域。
在 “域管理” 页上,单击域列表上方的 “创建复合域” 图标。
输入名称(对知识库唯一)以及说明(最多 256 个字符)。
在 “域列表”中,选择将成为复合域一部分的域,然后单击右箭头将它们移至 “复合域中的域” 表中。
单击“确定”。
设置复合域属性
在 “创建复合域” 对话框中,输入名称(对知识库唯一)以及说明(最多 256 个字符)。
在 “域列表”中,选择将成为复合域一部分的域,然后单击右箭头将它们移至 “复合域中的域” 表中。 这是可添加到您创建的复合域中的单一域列表。 只能使用已创建但尚未添加到现有复合域中的那些单一域。 无法将单一域添加到知识库中的多个复合域,并且一个复合域无法添加到另一个复合域中。
单击“高级”。
请为 “分析方法”选择下列选项之一:
引用数据:根据引用数据服务 (RDS) 格式化数据的方式分析字段的值。 Data Quality Services 将复合域中的值发送到 RDS,RDS 根据复合域中的域返回更正和分析后的数据。
按顺序:根据复合域中域的顺序分析字段的值。 第一个值将加入第一个域中,第二个值加入第二个域中,依此类推。
分隔符:基于在选择“分隔符”后显示的单选按钮中选择的分隔符分析该字段的值。 可以是 “制表符”、 “分号”、 “逗号”、 “空格”或 “其他”。 如果选择 “其他”,则输入将作为分隔符的值。
如果您为分析方法选择了 “分隔符” ,还可以选择 “基于知识的分析”。 有关详细信息,请参阅 Knowledge-Based Parsing。
单击 “完成” 以完成域管理活动,如 结束域管理活动中所述。
跟进:创建复合域后
在创建复合域后,您可以对域执行其他域管理任务,可以执行知识发现以便向域添加知识,或者可以向域添加匹配策略。 有关详细信息,请参阅执行知识发现、管理域或创建匹配策略。
Knowledge-Based Parsing
Data Quality Services 使您能够基于知识分析数据,而不仅仅是基于分隔符或顺序。 当复杂源数据映射到复合域并且您未使用引用数据服务时,使用基于知识的分析。 您可以使用基于知识的分析将数据源中的数据分析到相关的单一域。 使用基于知识的分析,DQS 将首先尝试使用知识将复杂数据分析到单一域。 如果可能,它将字符串的组成部分表示为在一个或多个域中,并将字符串分析到其不同的域中。 例如,假设你将“John B. Doe”作为由全名复合域表示的全名字段中的复杂值。 如果 DQS 将“John”标识为“名字”域中,将“Doe”标识为“姓氏”域中,则 DQS 将根据域知识将“B.”添加到中间名域。
仅当您也选择基于分隔符的分析时,才使用基于知识的分析。 基于知识的分析不能代替分隔符分析,但可以增强其功能。 仅当没有知识可让您进行分析时,DQS 才使用分隔符来进行分析。 在某些情况下,DQS 可通过基于知识的分析来确定一些分析,然后确定通过基于分隔符的分析来确定其他分析。
当复合域由字符串域组成或复合域由不同类型域(int、date、time 等)混合组成时,可以使用基于知识的分析。 如果数据源由不同类型的数据组成,则首先应针对非字符串数据类型进行分析,然后按上面所述基于域知识对剩余数据进行分析。
当您使用基于知识的分析时,如果源数据中的值少于复合域中的域,则 DQS 将在缺失的域中放入 Null。 如果源数据中的值多于复合域中的域,则 DQS 将向其中一列添加额外的数据。 如果两个或多个域包含相同的值,数据源将被分析为第一个匹配的域。