细木工
木匠查询外部表检索与功能相关联的属性。一个或多个特征的属性在数据库连接到一个或多个列在一个表中,并从匹配表行(多个)的值被添加为特征的属性。
该_matched_records属性指定的功能匹配到数据库中有多少条记录。
该Joiner是一个非常强大的变压器有许多性能相关的设置。
选择表所在,包括任何特定格式参数读者格式和数据集。
指定要连接的表。单击浏览按钮,从列表中选择表。请注意,您只能选择在这之后,你已经完全指定的读者格式,数据集,以及特定格式的参数。
选择从输入要素的属性(S)和将被用于查找匹配其对应的表的字段(一个或多个)。当所有属性的值等于其相应的表中的字段值匹配制成。
有一个排在表条目小部件的每个属性和列对。您可以通过点击加号(+)按钮位于表的右侧添加更多的对。( - )按钮,同样,你可以通过按减去删除对。1对最少必须被指定为参加工作。
从功能下拉列表中选择属性,属性栏。(您可以在相应的表中的字段直接输入或通过单击浏览按钮列表中进行选择)。对于浏览按钮来列出可用表字段,来读取表需要指定所需的所有信息。
从指定匹配表行的字段加入到输入功能的列表。
要选择从列表中的字段,单击浏览按钮。显示可能字段列表中会出现一个对话框。放置一个选中您要添加的每个字段,然后单击确定。
如果没有指定域,所有从匹配行的字段将被添加。
指示数据库的行和各特征之间的关系的类型。这说明有多少行会匹配到每个功能和什么样的行动,如果预期的数量没有找到木匠将采取。
关系类型 | 描述 |
---|---|
匹配所有(1:M) | 一个特征可以匹配任何数量的记录,所有这些都将基于的价值加盟多个匹配项参数。 |
匹配第一(1:0..1 +) | 一个特征可以在所有符合任意数量的记录,或没有,但只找到第一个记录将被加入。 |
必须相符(1:1) | 每个功能都必须匹配只有一个记录。零根火柴或一个以上的比赛会导致错误。 |
必须匹配0或者1(1:0..1) | 每个功能必须匹配单个记录或根本没有。不止一个匹配将导致错误。 |
注意:该必须匹配规则是非常严格的。有疑问时,可使用符合要么所有比赛。
指定如何给出多个匹配的结果。
为每个匹配创建一个功能:匹配的每一行将添加到传入功能的副本中。在这个场景中,对于中的每个功能,都会有匹配的功能。
添加字段在列表属性:匹配的每一行将添加到功能的列表属性中。在这个场景中,对于其中的每个特性,总是有一个特性。
要附加多个匹配项的列表属性的名称。
注意:除非首先使用对属性列表进行操作的转换器(如ListExploder要么ListConcatenator。所有属性列表转换器都显示在“转换器帮助”的“内容”窗格中清单。或者,AttributeExposer可以使用。
为了防止重写现有的特征属性,您可以选择指定一个前缀,当将其添加到该特征时,该前缀将应用于每个表字段名称。
通常,当缓存中的记录在数据库中匹配时,缓存中会充满这些记录。但是,对于支持sql的格式,可以通过发出预取查询来预加载缓存(也就是说,在匹配之前填充一组特定的数据)。此预取查询可以选择整个表或表中最有可能与要素属性匹配的选定部分。
注意:除非预取查询是详尽无遗的,否则将应用缓存大小限制。请参阅prefetch exclusted以了解什么是exclusted prefetch查询
已知检索所有可能匹配项的预取查询称为详尽的查询。当在穷举查询的缓存结果中找不到匹配时,假定数据库中不存在匹配;因此,不会进一步查阅数据库。
如果详尽的预取设置为是,这表示预取是否详尽无遗。即使设置为没有但是,如果任何预取查询不包含WHERE子句,并且其格式为:
从TableName中选择*
注意:当fme认为预取查询是详尽无遗的时,将忽略缓存大小限制。这是因为缓存必须包含查询的所有结果。
例如,许多“roads”类型的fme特性需要数据库匹配。数据库表(myrecords)有一个字段(RECORD_TYPE)具有多个值;道路,高速公路,大街,街道。FME功能将只与RECORD_TYPE =道路因此,如果发出以下预取,则整个联接过程将更加高效:
从我的记录中选择*其中记录类型为“道路”
如果不想接受默认值5000,请指定要在本地缓存的行数。您可以选择指定一个sql查询来预加载缓存。请注意,如果prefech查询是详尽的,则忽略缓存大小。
接合键字段的修剪可能会显著降低性能,并且仅当已知数据库中的键列值包含尾随空格时才应执行此操作。
如果使用了详尽的预取查询,则该查询无效(有关详尽的预取)中。
注意:包含此参数是为了向后兼容,大多数用户无需使用它。只能使用工作台的“导航器”窗格访问该参数。
小费:
使用注意事项
关系FeatureMerger
该FeatureMerger加入工作区中读取两个数据集。FeatureMerger也能使用在呼入功能进行一定的几何操作其合并类型参数。FeatureMerger执行内存中的所有连接,所以如果你有同样的数据不止一个关系可以比乔伊纳更快。乔伊纳加入使用SQL数据库进行。文章FME2011使用案例:木VS FeatureMerger包含这些变压器的更详细的比较。
关系InlineQuerier/SQLCreator/SQLExecutor
当存在一个数据库内保持流过FME数据和数据之间的一到一个或一对多的关系的钳工是非常有用和有效。如果可以使用的,连接符可以比使用任一InlineQuerier或SQLCreator / SQLExecutor更有效的,条件是所述连接符键字段具有在源数据库中的索引。乔伊纳可以基于多个属性键简单连接关系,不需要SQL知识 - 这往往是简单的查找表非常有效。SQLCreator / SQLExecutor让更多的复杂的连接和这些由源数据库中执行。
该InlineQuerier是在数据源没有SQL的能力,或更复杂的查询情况下非常有用。该InlineQuerier允许您询问比木匠的数据更复杂的问题。
例
编辑变压器参数
使用一组菜单选项,变压器参数可以通过引用在工作区中的其它元件来分配。更先进的功能,如高级编辑,算术编辑,也是一些变压器可用。要进入这些选项的菜单上,单击适用的参数旁边。欲了解更多信息,请参阅变压器参数菜单选项。
变压器分类
搜索FME知识中心
搜索样品和有关该变压器上的信息FME知识中心。