数据库连接器
将外部表中的属性联接到工作区中已有的功能,基于一个或多个公共键。
典型用途
- 将外部数据库表中的属性联接到工作区中已有的功能。
它是如何工作的?
databasejoiner查询外部表以检索与功能关联的属性。一个或多个功能属性(主键)与数据库中表中的一个或多个列(外键)匹配,并且来自匹配表行的值作为属性添加到特性中。
有许多匹配方法(基数)-全部匹配(1:m),第一个(1:0..1+),正好一个(1:1)或零或一(1:0..1)。不满足匹配条件的功能通过
这个_匹配的记录属性指定功能在数据库中匹配的记录数。多个匹配可以创建多个功能,也可以向单个功能添加列表属性。
databasejoiner允许基于多个属性键的简单连接关系,并且不需要SQL知识——这对于简单的查找表通常非常有效。
在这个例子中,我们要从PostGIS数据库中的表中检索属性,并添加这些属性以放置存储在形状文件中的多边形。公园有一个身份证号码,可以用来加入。
在此工作区中,我们从阅读公园形状文件开始,然后将公园功能路由到数据库连接程序中,在这里我们将检索我们想要的其他属性。
在参数对话框中,第一步是定义外部数据库——很像配置常规的数据库格式阅读器。
通过数据库连接,现在,我们通过表旁边的浏览按钮选择所需的表(public.parks)。这将加载可供选择的表的列表。然后,我们从传入的parks(feature属性)和joined table(table字段)中选择要加入的属性。在这两种情况下,属性被调用帕尔奇.
要添加的字段确定将外部数据库表中的哪些属性添加到风场功能。我们选择全部他们当中。
的默认值基数,多个匹配项,属性合并将提供我们想要的结果。
连接端口的输出功能现在具有从外部数据库表中检索到的其他属性。请注意_匹配的记录属性显示遇到多少匹配项-在这种情况下,一个。
使用说明
- 为了获得最佳性能,确保在数据库中索引键(要联接的属性)。如果索引了键,与其他连接变压器相比,databasejoiner的效率要高得多。
- 要加入已经在工作区中的两个功能流,考虑使用特征合并,它还提供几何合并选项。
- 如果所有数据都驻留在支持SQL的源中,考虑使用Sql创建者或SQL执行器,它还可以执行在源数据库中处理的更复杂的联接查询。对于简单的连接,databasejoiner可能是最有效的方法。
- DatabaseJoiner不需要了解SQL。
- 要对非SQL数据源执行SQL联接查询(简单或复杂),考虑使用内联均衡器.
选择特征连接方法
许多变压器可以根据匹配的属性进行数据连接,表达式和/或几何。为特定的加入任务选择一个时,考虑到连接的复杂性,数据格式,索引,冲突处理,以及期望的结果。有些转换器使用SQL语法,一些直接访问外部数据库。他们可能支持也可能不支持列表属性阅读和创作。
一般来说,选择一个最具体的任务,你需要完成将提供最佳的性能结果。如果有不止一种方法可以做到这一点(这种情况经常发生)。花在性能测试替代方法上的时间可能是值得的。在读取外部表时,性能可能会有很大的变化,这取决于关键索引的存在(而不是工作区中已经存在的特性)。
变压器 |
比赛通过 |
使用SQL语句 |
可以创建列表 |
输入类型 |
值得注意的 |
描述 |
---|---|---|---|---|---|---|
特征接合器 | 属性 | 不 | 不 | 特征 |
|
通过基于公共键属性值组合特征的属性和/或几何图形来连接特征。相当于内部,左,和完整的SQL联接。 |
特征合并 | 属性 | 不 | 是的 | 特征 |
|
将一组特征的属性和/或几何图形合并到另一组特征上,基于匹配的键属性值和表达式。 |
基于列表的功能合并 | 列表属性到单个属性 | 不 | 是的 | 特征 |
|
将一组特征的属性和/或几何图形合并到另一组特征上,基于匹配列表属性具有键属性值和表达式的值。 |
内联均衡器 | SQL查询 | 是的 | 不 | 特征 |
|
从传入功能创建一组sqlite数据库表,对它们执行SQL查询,并将结果作为特征输出。 |
Sql创建者 | SQL查询 | 是的 | 不 | 外部数据库 |
|
通过对数据库执行一次SQL查询的结果生成FME特性。为SQL查询结果的每一行创建一个FME特性。 |
SQL执行器 | SQL查询 | 是的 | 不 | 外部数据库 |
|
对数据库执行SQL查询。对于进入变压器的每个启动特性,向数据库发出一个查询。初始特性和查询结果都可以作为特性输出。 |
数据库连接器 | 属性 | 不 | 是的 | 外部数据库和功能 |
|
将外部表中的属性联接到工作区中已有的功能,基于一个或多个公共键。不需要SQL知识。无阻塞变压器。 |
匹配器 | 几何图形和/或属性 | 不 | 是的 | 特征 |
|
检测彼此匹配的功能。当特征具有匹配的几何图形时,它们将被声明为匹配。匹配属性值,或者两者兼而有之。还可以指定功能之间必须不同的属性列表。 如果仅匹配属性(而不是几何体),使用FeatureMerge或其他方法将获得更好的性能。 |
配置
输入端口
要与外部表中的属性联接的功能。
输出端口
成功匹配的功能。
没有匹配的功能。
参数
DatabaseJoiner是一个功能强大的转换器,具有许多与性能相关的设置。
格式 | 选择外部数据集的格式,或者允许从所选数据集进行猜测。 |
数据集或连接 | 选择要读取的数据集。根据格式,这可能是一个文件,文件夹,或数据库连接。 |
参数 | 访问特定于所选读卡器和数据集的读卡器参数。 |
表 | 指定要联接的表。单击“浏览”按钮从列表中选择表。请注意,只有在完全指定了读卡器格式之后才能选择此选项。数据集,以及格式化特定参数。 | ||||||||
加入 | 从传入功能中选择属性及其相应的表字段,这些字段将用于查找匹配项。当所有属性的值等于其对应表字段的值时,将进行匹配。 在表条目小部件中,每个属性和列对有一行。通过单击表右侧的加号(+)按钮,可以添加更多对。同样地,按减号(-)按钮可以删除对。必须至少指定一对才能使联接工作。 从“要素属性”列的下拉列表中选择属性。(您可以直接在相应的表字段中键入,也可以通过单击“浏览”按钮从列表中选择。)对于“浏览”按钮,可以列出可用的表字段,需要指定从表中读取的所有信息。 连接行工具:
这些工具可用于添加,删除,切割,拷贝,和粘贴排。 |
||||||||
要添加的字段 | 指定要联接到传入功能的匹配表行中的字段列表。 要从列表中选择字段,单击浏览按钮。将出现一个显示可能字段列表的对话框。在您要添加的每个字段旁边放置一个复选框,然后点击确定。 如果没有指定字段,将添加匹配行中的所有字段。 |
||||||||
基数 | 指示数据库行和每个功能之间的关系类型。这将描述与每个功能匹配的行数,以及如果找不到预期的数目,DatabaseJoiner将采取什么操作。 选择包括:
这个必须匹配规则非常严格。当有疑问时,使用先匹配或全部匹配. |
||||||||
多个匹配项 | 指定如何提供多个匹配的结果。 为每个匹配创建一个功能:匹配的每一行都添加到传入功能的副本中。在这种情况下,对于中的每个功能,将有匹配的功能。如果没有匹配项,功能退出未连接的输出端口。 在列表属性上添加字段:匹配的每一行都被添加到特性的列表属性中。如果没有匹配项,功能退出未连接的输出端口。 |
||||||||
加入的列表名称 | 要附加多个匹配项的列表属性的名称。 注:列表属性无法从工作台的输出模式访问,除非首先使用对其进行操作的转换器对其进行处理,如列表爆炸器或列表连接符.或者,属性Exposer可以使用。 |
积累方式 | 如果合并连接被选中,将合并功能和表中的属性,如果发生冲突,则冲突解决将使用参数。 如果前缀连接被选中,然后所有传入的属性都将显示在前缀参数。 |
冲突解决 | 此参数在以下情况下启用:积累方式设置为合并连接. 使用原件和使用连接在属性冲突的情况下,将分别优先处理原始属性和传入属性。 |
前缀 | 指定的值用作传入属性的前缀,当积累方式是前缀连接. |
提示:
预取查询 | 仅用于数据库格式。 对于支持SQL的格式,可以预加载DatabaseJoiner缓存(即,通过发出预取查询,在进行匹配之前填充特定的数据集。此预取查询可以选择整个表或表中最有可能与功能属性匹配的选定部分。 例如,“高速公路”类型的许多FME特征需要数据库匹配。数据库表(我的唱片)有一个字段(记录类型)具有多个值;路,公路,大道街道。FME功能将只与记录类型=公路因此,如果发出以下预取,整个联接过程将更加高效: 从myrecords中选择*,其中record_type='highway' 注:除非预取查询是详尽的,应用缓存大小限制。请参阅完全预取以了解完全预取查询的构成 |
全神贯注 | 仅用于数据库格式。 已知用于检索所有可能匹配项的预取查询称为详尽的查询.在这种情况下,不会再为匹配查询数据库。如果在详尽查询的缓存结果中找不到匹配项,假设不存在匹配。 如果全神贯注设置为是的,这表示预取是否是完全的(并且用户不想进一步查询数据库)。即使设置为不,然而,如果任何预取查询不包含WHERE子句,则假定该查询是详尽的,其形式如下: 从tablename中选择* 注:当FME认为预取查询是详尽的,将忽略缓存大小限制。这是因为缓存必须包含查询的所有结果。 |
缓存大小 | 仅用于数据库格式。 如果不希望接受默认值5000,请指定要在本地缓存的行数。您可以选择指定SQL查询来预加载缓存。请注意,如果预取查询已用尽,则会忽略缓存大小。 |
修剪关键字段 | 出现在字符字段中。 如果数据库中的键列值已知包含尾随空格,则接合键字段的剪裁可能会显著降低性能,并且只应执行此操作。 如果使用了详尽的预取查询,则不会产生任何效果(有关全神贯注) 注:这个参数是为了向后兼容而包含的,大多数用户不需要使用它。只能使用工作台的窗格访问参数。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来指定变压器参数。更高级的功能,例如高级编辑器和算术编辑器,在一些变压器中也有。要访问这些选项的菜单,点击在适用参数旁边。更多信息,看见变压器参数菜单选项.
定义价值
定义用于变压器的值有几种方法。最简单的方法是简单地键入一个值或字符串,它可以包含各种类型的函数,例如属性引用,数学和字符串函数,和工作区参数。有许多工具和快捷方式可以帮助构造值,通常可从值字段旁边的下拉上下文菜单中获得。
使用文本编辑器
文本编辑器提供了从各种数据源构造文本字符串(包括正则表达式)的方便方法,比如属性,参数,常数,其中结果直接在参数内部使用。
使用算术编辑器
算术编辑器提供了一种从各种数据源构造数学表达式的方便方法。比如属性,参数,以及功能,其中结果直接在参数内部使用。
条件值
根据通过或失败的一个或多个测试条件设置值。
内容
表达式和字符串可以包含多个函数,字符,参数,以及更多——无论是直接输入参数还是使用其中一个编辑器构造。
参考文献
处理行为 |
|
特征保持 |
不 |
依赖关系 | 格式相关-对于某些格式,可能需要第三方驱动程序 |
FME许可级别 | FME基础版及以上 |
别名 | 木工 |
历史 | |
类别 |
FME社亚搏国际在线官网区
FME社区是演示亚搏国际在线官网的地方,如何,文章,常见问题解答,还有更多。回答你的问题,向其他用户学习,并建议,投票表决,以及对新功能的评论。
寻找关于databasejoiner的所有结果关于FME社区。亚搏国际在线官网
示例可能包含根据开放式政府许可证(温哥华)获得许可的信息。