DatabaseJoiner
DatabaseJoiner:Joins attributes from an external table to incoming features as they are being processed through a translation.
DatabaseJoiner查询外部表以检索与功能关联的属性。将一个或多个要素属性联接到数据库表中的一个或多个列,并将匹配表行中的值作为要素属性添加。
这_matched_records.属性指定数据库中与功能匹配的记录数。
Output Ports
Features that successfully matched.
没有匹配的功能。
如果基数设置为必须恰好匹配一个orMust Match Zero or One然后拒绝不符合标准的功能。
参数
DatabaseJoiner是一个非常强大的变形因素,具有许多与性能相关的设置。
Reader
选择表所在的读取器格式和数据集,包括任何特定于格式的参数。
Join
指定要联接的表。单击“浏览”按钮从列表中选择表。请注意,只有在完全指定了reader format、dataset和特定于格式的参数之后,才能选择此选项。
从传入功能中选择属性及其将用于查找匹配的相应表字段。当所有属性的值等于其对应表字段的值时,会匹配。
表条目小部件中的每个属性和列对都有一行。您可以通过单击表右侧的加号(+)按钮添加更多对。同样,您可以通过按下减号(-)按钮来删除对。必须至少指定一对连接才能工作。
Select attributes from a drop-down list in the Feature Attributes column. (You can type directly in the corresponding table fields or select from a list by clicking the Browse button.) For the Browse button to list available table fields, all the information needed to read from the table needs to be specified.
Specify a list of fields from the matching table rows to join onto the incoming feature.
要从列表中选择字段,请单击“浏览”按钮。将出现一个显示可能字段列表的对话框。选中要添加的每个字段旁边的复选框,然后单击“确定”。
如果no fields are specified, all the fields from the matching rows will be added.
指示数据库行与每个功能之间的关系类型。这将描述与每个功能匹配的行和DatabaseJoiner将采用的操作是多少行,如果找不到预期的号码。
Relationship Type | 说明 |
---|---|
匹配所有(1:M) | 一个特征可以匹配任意数量的记录,所有这些记录都将基于Multiple Matches参数。 |
匹配第一(1:0..1 +) | 功能可以与任何数量的记录匹配,或者根本没有,但只有找到的第一个记录将被加入。 |
必须恰好匹配一个(1:1) | 每个功能必须仅匹配到一个记录。零匹配或多个匹配将导致功能抑制。 |
必须匹配零或一个(1:0..1) | 每个功能必须与单个记录或根本没有匹配。多个匹配将导致功能抑制。 |
Note:这Must Matchrules are very strict. When in doubt, use先匹配or全部匹配。
指定如何给出多个匹配的结果。
为每个匹配创建一个特征: Each row matched is added to a copy of the incoming feature. In this scenario, for each feature in, there will be matched features out. If there are no matches, the feature exits theunjoined.输出端口。
在列表属性上添加字段:匹配的每一行被添加到该功能上的列表属性中。如果没有匹配,则该功能退出unjoined.输出端口。
要附加多个匹配项的列表属性的名称。
Note:列出属性除非首先使用在工作台上运行的变压器处理它们,否则无法从工作台中的输出模式访问,例如ListExploderorListConcatenator。所有列表属性转换器都显示在变压器帮助的内容窗格中列表。或者,AttributeExposer可以使用。
合并属性
如果合并加入选择后,将合并要素和表中的属性,如果发生冲突,则在解决冲突将使用参数。如果前缀加入is chosen, then all incoming attributes will be presented with a prefix set in the字首参数。
此参数在以下情况下启用:Accumulation Mode设置为合并加入。使用原件and使用加入在属性冲突时,将分别对原始属性和传入属性给予优先级。
当输入属性出现时,指定的值用作前缀Accumulation Modeis前缀加入。
Optimize
通常,缓存中填充记录,因为它们在数据库中匹配。但是,对于支持SQL的格式,可以通过发出预取查询来预加载缓存(即在匹配发生之前填充特定的数据集)。此预取查询可以选择一个表的整个表或表中最可能与要素属性匹配的选定部分。
Note:除非预取查询是详尽的,否则缓存大小限制将适用。请参阅Prefetch executive以了解什么是详尽的预取查询
已知可检索所有可能匹配项的预取查询称为详尽的查询. 如果在穷举查询的缓存结果中找不到匹配项,则假定数据库中不存在匹配项;因此,将不进一步查阅数据库。
如果预回迁设置为是的, this indicates whether a prefetch is exhaustive. Even when it is set toNo但是,如果任何预取查询不包含WHERE子句,且其形式为:
从TableName中选择*
Note:当FME认为预取查询是详尽的时,缓存大小限制将被忽略。这是因为缓存必须包含查询的所有结果。
例如,许多“道路”类型的FME特征需要数据库匹配。数据库表(myRecords.) has a field (Record_type.)具有若干值;道路,公路,道路,街道。FME功能将仅与以下位置匹配Record_type =道路so the overall join process would be much more efficient if the following prefetch was issued:
SELECT * from myrecords where record_type = 'roads'
如果不希望接受默认值5000,请指定本地缓存的行数。您可以选择指定SQL查询来预加载缓存。请注意,如果prefech查询是穷举的,则忽略缓存大小。
关键字段的接合修剪可能会显著降低性能,只有在已知数据库中的键列值包含尾随空格时才应执行。
如果使用详尽的预回迁查询,它将不起作用(请参见上面的解释)预回迁)。
Note:包含此参数是为了向后兼容,大多数用户将不需要使用它。只能使用工作台的窗格访问该参数。
提示:
使用说明
Relationship to特色合并
这特色合并joins two datasets being read in a workspace. FeatureMerger is also able to perform certain geometric operations on incoming features using its合并类型参数。特色合并performs all joins in memory, so it can be faster than the DatabaseJoiner if you have more than one relationship on the same data. DatabaseJoiner joins are performed by the database using SQL. The articleFME2011用例:Joiner VS Featuremergercontains a more detailed comparison of these transformers.
Relationship toInlineQuerier/SQLCreator/SQLExecutor
当在流过FME和数据库中的数据之间存在一对一或一对多的关系时,DatabaseJoiner非常有用和有效。如果可以使用它,DatabaseJoiner可以比使用Inlinequerier或SQLCreator / SQLExecutor更有效,只要DatabaseJoiner键字段在源数据库中具有索引。DatabaseJoiner允许基于多个属性键的简单连接关系,并且不需要对SQL的了解 - 这通常对简单的查找表来说非常有效。SQLCreator / SQLExecutor允许更复杂的连接,这些连接由源数据库执行。
inlinequeryer在数据源没有SQL功能的情况下很有用,或者对于更复杂的查询。InlineQuerier允许您提出比DatabaseJoiner更复杂的关于数据的问题。
例子
编辑变压器参数
Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, clickbeside the applicable parameter. For more information, see变压器参数菜单选项。
变压器类别
搜索FME知识中心
在上搜索有关此变压器的示例和信息FME知识中心。