您可以将数据匹配添加到数据类,以指定如何自动分配数据类。 选择匹配方法以指定如何在数据分析期间自动将数据类分配给数据资产。
缺省情况下,匹配数据设置为 "无自动匹配" ,这意味着只能将数据类手动分配给列。 要使数据类能够自动分配,必须定义数据匹配。
要向数据类添加数据匹配方法,请执行以下操作:
打开数据类并确保在数据类概述中启用数据匹配。
单击匹配方法字段旁的编辑,以选择如何指定匹配条件。 大部分方法都包括数据和列匹配条件。 根据已部署的服务,提供了以下匹配方法:
无自动匹配
匹配有效值列表 - 有效值目录用于确定数据库列的每个值是否属于数据类。
与参考数据匹配 -参考数据集中的代码用于确定数据库列的每个值是否属于数据类。
匹配正则表达式中的条件 - 正则表达式用于确定数据库列的每个值是否属于数据类。
其他匹配条件 -匹配仅基于要应用于列名的正则表达式和/或列的指定数据类型。 没有其他条件用于评估列的值。 在应用主匹配方法之前,将应用其他匹配条件。 仅当列的名称和/或数据类型与指定为其他匹配条件的内容匹配时,才会根据主匹配条件对列值进行求值。
根据为您所选的匹配方法的要求,输入信息以定义匹配数据和其他匹配条件,并选择阈值值。
可选: 设置匹配的优先级。 选择 -2147483648 和 2147483647 范围内的值,以确定数据类的 优先级 。
发布数据类。
有关启用和禁用匹配数据的注释:
- 如果一个数据类的父数据类已禁用匹配数据,那么该数据类不会启用数据匹配。
- 如果禁用数据类的匹配数据,那么它还将禁用从属数据类的匹配。
父数据类
父数据类用于在父/子关系中组织数据类。 如果使用自动匹配数据方法,那么它也充当一种 "预过滤器": 如果父数据类具有匹配数据方法,那么仅当父数据类的数据匹配方法返回了正匹配时,才会评估子数据类的数据匹配方法。 这表示如果定义父数据类,它就会影响数据分类流程用于确定是否应分配数据类以分析数据字段的条件。
阈值
此字段表示候选数据类应该对列具有的最小置信度,以便实际将该数据类分配给该列。 例如,将类的阈值定义为 90%。 分析期间,某一列将数据类与置信度 95% 匹配,另一列匹配置信度 89%。 由于阈值为 90%,因此数据类将仅分配给第一列。
如果希望执行数据类分配(即时并非所有数据都匹配数据类也是如此),应降低该阈值。 如果数据质量不完美,那么您可以执行此操作,在您知道匹配方法定义未涵盖所有可能值的整个域的 100% 时,也可以执行此操作。 例如,使用分类器检测城市名称。 定义包含全世界所有城市名称(包括最小的地点)的准确的值列表是不切实际的。 A more practical approach would be to enter the list of the 100 largest cities and decrease the threshold to reflect the fact that you don't expect all values of a column to be one of these 100 largest cities, but that a classification should be positive even if enough values (<100%) are found in that list of the 100 largest cities.
设置阈值是可选的。 对于元数据扩充,如果未直接在数据类上设置阈值,那么将使用在项目级别定义的阈值。 数据类上设置的阈值始终优先于项目设置。 请参阅 数据类分配设置。
以下预定义数据类在数据类定义中设置了缺省阈值:
数据类 | 阈值 |
---|---|
城市 | 一半 |
人员姓名 | 一半 |
名字 | 一半 |
中间名 | 一半 |
姓氏 | 一半 |
组织名称 | 超过 60% |
优先级
数据类的优先级确定候选数据类应成为推断的数据类的顺序。 将仅分配置信度高于置信度阈值的数据类。 当数据与多个数据类匹配时,将分配优先级最高且置信度高于置信度阈值的数据类。
某些预定义数据类具有优先级设置。 否则,对于具有匹配作用域 value的预定义数据类,缺省优先级为 10。 对于具有匹配作用域 column的数据类,缺省优先级为 0。 要使定制数据类优先于预定义数据类,必须使用更高优先级来定义该数据类。
数据类 | 优先级 |
---|---|
地址行 1 | 12 个月 |
地址行 2 | 12 个月 |
地址行 3 | 12 个月 |
布尔值 | 16 |
加拿大省代码 | 14 日 |
加拿大省名 | 12 个月 |
城市 | 7 |
代码 | -10 |
国家或地区代码 | 13 |
国家或地区名称 | 12 个月 |
名字 | 10 |
性别 | 16 |
标识 | -10 |
指示符 | -10 |
姓氏 | 7 |
中间名 | 10 |
组织 | 7 |
人员姓名 | 7 |
数量 | -10 |
文本 | -10 |
美国县 | 8 |
美国州代码 | 14 日 |
美国州名 | 12 个月 |
匹配有效值列表
将数据与有效值列表匹配时,会创建有效值列表以根据数据库列的值级来对数据进行分类。 您必须逐个手动提供值,因此建议对一小部分值使用此方法。 对于较长的列表,可以使用 Match to reference data 方法。
在 匹配有效值列表 部分中,指定有效值列表。
文本匹配条件:
- 区分大小写
- 如果选中此项,那么只有大小写与指定有效值相同的值才会分类为与该数据类匹配。 如果未选中此项,那么会忽略大小写。
- 完全匹配空格
- 如果选中此项,那么仅将完全匹配项分类为匹配。 如果未选中此项,那么多个空格字符会先折叠为单个空格,然后再将有效值与测试值进行比较。 例如,如果有效值为
New York
,测试值为New York
,那么该测试值会分类为匹配,即使有效值中包含多个空格字符(例如New York
)也是如此。 但是,如果测试值是不含空格的NewYork
,那么该测试值会分类为不匹配。 - 整字
- 如果选中此项,那么仅将完全匹配项分类为匹配。 如果未选中此项,那么子串值也会分类为与该数据类匹配。 例如,如果有效值为
Paris
,测试值为Parisienne moonlight
,那么该测试值会分类为匹配。
然后指定为了分配此数据类而需要的匹配数据值百分比。
匹配参考数据
将数据与参考数据集匹配时,选择参考数据集以根据数据库列的值级来对数据进行分类。 参考数据集至少由以下列组成:
- 代码
- 值
请注意,此匹配方法使用参考数据集中的代码列来确定数据类。
包含国家或地区代码样本的示例 CSV 文件:
code,value
"AND","Andorra"
"ARE","United Arab Emirates"
"AFG","Afghanistan"
"ATG","Antigua And Barbuda"
"AIA","Anguilla"
"ALB","Albania"
"ARM","Armenia"
...
此示例中的代码 (例如 AND
, ARE
和 AFG
) 可用于确定数据类。
匹配正则表达式中的条件
正则表达式用于确定数据库列的每个值是否属于数据类。
与正则表达式中的条件匹配时,您需创建一个正则表达式,以根据数据库列的值级别来将数据分类。 正则表达式必须使用 JavaScript 格式。
正则表达式适用于结构清晰的数据资产,例如数据库,表或列。
可以复制正则表达式的以下任何示例并将其粘贴到列名条件。 然后指定列名以测试正则表达式。 还可以选择数据值的数据类型和长度。
示例 - 电话号码(北美)
此正则表达式与以下内容匹配:
- 3334445555
- 333.444.5555
- 333-444-5555
- 333 444 5555
- (333) 444 5555
- 上述各项的所有组合
\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}
示例 - 出生日期
此正则表达式与出生日期匹配:
<tns:DataClass id="DOB" name="%DOB.name" description="%DOB.description" provider="IBM" example="12-30-2015">
<tns:JavaClassifier
className="com.ibm.infosphere.classification.impl.DOBClassifier" />:
<tns:ColumnNameFilter>
<tns:ColumnNameRegularExpression><![CDATA[dob$|birth(day)?|geburtsdatum|na(issance|cimiento|scita)|urodzenia|(生ま(れた日)?|誕生日)|出生(年月)?]]></tns:ColumnNameRegularExpression>
</tns:ColumnNameFilter>
</tns:DataClass>
其他匹配条件
匹配基于有关名称和/或列的数据类型的条件。 没有其他条件用于评估列的值。 将在初始选择的匹配方法的基础上应用此条件。
可以指定正则表达式以定义匹配的列名并提供样本列名供测试。 列数据类型可以为任何类型,即布尔值、日期或数字。 还可以定义数据值的最小和最大长度。
锚点示例
以下示例是锚点示例。 锚点的工作方式与大多数软件程序中搜索功能的工作方式相同,即搜索文本本身,或搜索嵌套在其他文本中的文本。 如果要将正则表达式的字符串设定为锚点,请使用以下语法:
^
字符串$
"^" 和 "$" 将 string中的字符作为锚点。 "^" 表示 string 的开头, "$" 表示分别在开头和结尾找到的结尾。 "^" 字符只有在它是模式中的第一个字符时才具有此特殊含义; "$" 只有在它是模式中的最后一个字符时才具有此含义。
例如,如果要验证某个属性值是否包含特定字符串,请确保将该字符串设定为锚点。 假设订单表单中的标签是 "订单" (如果客户只有一个订单) ,而 "订单" (如果客户有多个订单) ,并且您要确认此客户只有一个订单。 在该标签的文本属性上,将值更改为正则表达式:
^Order$
在这种情况下, "Order" 是唯一匹配的值。 "订单" 不匹配。
了解更多信息
父主题: 数据类