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