AttributeValidator
根据用户定义的测试条件验证任意数量的属性,根据测试的结果路由特性,并识别失败的任何测试。
典型的使用
- 执行数据质量测试
通过针对一组可接受的条件测试属性来加强数据完整性
- 确保属性满足输出数据库中的约束和域的要求
它是如何工作的?
AttributeValidator接收带有要根据用户定义的验证规则测试的属性的特性。
可以使用各种各样的验证规则类型。规则是在一个表中创建的,每行由要验证的属性、要执行的测试类型和所需的任何配置组成。属性可以根据任意数量的规则进行测试,规则可以应用于任意数量的属性。
有两个输出端口-通过了和失败的.
通过了特性是其属性已通过已定义的所有验证规则测试的特性。
如果任何测试失败,特性将通过失败的端口,带有故障描述:
- 第一个失败的测试将记录在新属性中_fme_validation_message.
- 第一次测试和任何未通过的测试都将记录在新的list属性中_fme_validation_message_list {}.
测试将按照参数对话框中的“验证规则”表中列出的顺序进行评估。
创建验证规则
每个规则由要测试的属性和要执行的测试组成。以下测试可用。
验证规则 |
描述 |
配置 |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型 | 测试值是否与所选类型兼容。 您可以通过添加额外的验证规则来测试多种类型。 |
选择要测试的类型。
|
||||||||||||||||
在范围内 | 测试值是否在集合表示法中指定的数字范围内。 可通过将下限或上限留空来定义开放式范围。 |
范围值由逗号分隔,并用括号括起来。 方括号。[]——显示包容限制(大于或等于,小于或等于)。 圆括弧。( )——显示独家限制(大于,小于)。 有效范围例子: (9)大于1小于9 (1, 9)大于或等于1小于或等于9 (9)大于1小于等于9 (1)大于1 [9]小于或等于9 |
||||||||||||||||
情况下 | 测试值是否符合选定的案例模式。 | 选择一个案例模式。
|
||||||||||||||||
最小长度 | 测试值中的字符数是否大于或等于最小长度。 所有值都作为字符串计算。 |
输入一个整数。 例子: 最小长度= 4 Bvd:失败 大街:通过 大道:通过 |
||||||||||||||||
最大长度 | 测试值中的字符数是否小于或等于“最大长度”。 所有值都作为字符串计算。 |
输入一个整数。 例子: 如果最大长度= 4 123:通过 1234:通过 999999:失败 |
||||||||||||||||
在 | 测试是否可以在提供的可能值和范围列表中找到该值。 | 输入逗号分隔的字符串、数值和/或范围的任意组合(以x-y的形式)。 有效配置的例子: 10100 1 - 99 猫 猫,狗,猫和狗 狗,1 - 9,7 |
||||||||||||||||
数组, | 测试值是否可按指定的编码进行编码而不会丢失数据。 | 从标准编码列表中选择。 样本编码:
|
||||||||||||||||
非空 | 测试该属性是否存在于特性上,且不为空。 | 未使用< > | ||||||||||||||||
独特的 | 测试一个值在一组特性中是否唯一(只使用一次)。 一个值的第一次出现将为Pass,而该值的任何后续出现都将失败。 |
未使用< > | ||||||||||||||||
有一个值 | 测试属性是否有值,是否为空、缺失或空。 | 未使用< > | ||||||||||||||||
包含正则表达式 | 测试值是否包含与正则表达式描述的模式匹配的字符串。 | 输入正则表达式。 的正则表达式编辑器通过省略号(…)按钮可用,并可用于构造和测试表达式。 要测试的regex可以表示在值中的任何位置找到的字符串,也可以表示整个值(通过创建足够长的regex来表示所需值的范围)。 例子: 如果正则表达式\ d 猫:失败 9:通过 cats82:通过 |
在这个例子中,我们有一个食品车供应商的电子表格来测试数据质量。
这些特性被路由到AttributeValidator中。
在参数对话框中,我们构造了三个要执行的测试:
- 有一个值:测试所有属性是否存在任何值,这将标识任何丢失的数据。
- :的描述属性,以查看其值是否在有效选项列表中。输入列表,条目之间用逗号分隔。未能通过此测试的项可能有错误的信息,或数据输入错误,如错误的大小写或拼写。
- 类型:的纬度和朗测试属性以查看它们是否包含浮点数。由于这些包含供应商的位置,因此未通过此测试的项目可能具有无效坐标。
测试失败的特性将通过失败的端口。〇新属性_fme_validation_message,并包含每个特性的第一次测试失败的详细信息。请注意,测试是按照它们在验证规则表中出现的顺序应用的。
一个新的属性列表也被添加了(在Table视图中不可见)-_fme_validation_message_list {}.将所有失败的测试添加到列表属性中。
注意,该特性已经失败了两个测试-BUSINESS_NAME没有值,而描述是否因为价值而失败热狗与列表项不匹配热狗(案例是错误的)。
配置
输入端口
具有要验证的属性的特性。
输出端口
如果测试通过,该特性将通过通过了端口。
如果任何测试失败,该特性将通过失败的端口,带有描述失败的附加属性。
参数
看到创建验证规则以上为进一步的细节。
属性来验证 | 选择要测试的属性。 |
验证规则 | 选择要执行的测试类型。选项包括:
|
规则配置 | 为所选测试输入任何补充配置信息。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配转换器参数。更高级的函数,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击除适用参数外。有关更多信息,请参见变压器参数菜单选项.
定义值
有几种方法可以定义在Transformer中使用的值。最简单的方法是简单地输入值或字符串,其中可以包括各种类型的函数,如属性引用、数学和字符串函数以及工作空间参数。有许多工具和快捷方式可以帮助构造值,通常可以从值字段附近的下拉上下文菜单中获得。
使用文本编辑器
Text Editor提供了一种方便的方法来从各种数据源(如属性、参数和常量)构造文本字符串(包括正则表达式),其中结果直接在参数中使用。
使用算术编辑器
算术编辑器提供了一种方便的方法来从各种数据源(如属性、参数和功能函数)构造数学表达式,其中结果直接在参数中使用。
有条件的值
根据一个或多个通过或失败的测试条件设置值。
内容
表达式和字符串可以包含许多函数、字符、参数等等——无论是直接在参数中输入,还是使用其中一个编辑器构造。
参考
处理行为 |
|
功能持有 |
没有 |
依赖关系 | 没有一个 |
FME授权级别 | FME基础版及以上 |
别名 | AttributeClassifier, StringClassifier |
历史 | 这个变压器取代了AttributeClassifier变压器。 |
类别 |
FME社亚搏国际在线官网区
FME社区是演示亚搏国际在线官网、操作指南、文章、faq和更多内容的地方。获得问题的答案,向其他用户学习,并对新功能提出建议、投票和评论。
搜索关于AttributeValidator的所有结果在FME社区。亚搏国际在线官网
例子可能包含在开放政府许可证-温哥华下许可的信息