SQLCreator
根据对数据库执行一次SQL查询的结果生成FME特性。为SQL查询结果的每一行创建一个FME特性。
典型用途
- 根据SQL语句将数据库记录提取为FME功能
- 从数据库中添加功能
- 执行数据库连接
它是如何工作的?
SQLCreator对数据库执行SQL语句。它没有输入端口,因此(与SQLExecutor)并不依赖传入的特性来触发语句——相反,查询是运行的只有一次.
SQL语句是在transformer中构造的,使用的是适用于所用数据库的适当语法。如果数据库支持空间谓词,则支持空间查询。
通过Result端口为每一行查询结果输出一个特性。
在本例中,我们将通过查询PostGIS数据库创建一组特性,PostGIS数据库有一个包含点几何地址的表。我们将使用SELECT语句根据邮政编码提取数据的子集。
SQLCreator放置在工作区中。
在“参数”对话框中,选择(或定义,如果以前未保存)数据库连接。
属性中构造了一条SQL语句SQL语句参数,使用内置编辑器。语法与所使用的数据库相匹配。
编辑器中有一个方便的快捷方式—通过右键单击数据库表下的表(或列)名称,可以基于SELECT和more创建一个快速语句以开始编辑。
在本例中,我们选择邮资具有以开头的邮政编码的表V6E.
默认情况下,输出具有隐藏属性。选择您希望包含在Attributes to Expose参数中的内容。
提取查询结果,包括几何图形。注意,只有公开的属性在Table View中是可见的。
使用笔记
- 如果数据库支持空间谓词,则可以使用空间查询。
- SQLCreator只能用于启用SQL的数据源。若要使用SQL与非SQL数据,请考虑InlineQuerier.
- 如果要查询的所有数据都已经存在于支持sql的数据源中,那么使用SQLCreator或SQLExecutor,因为在数据进入FME环境之前,数据库直接执行数据的查询和过滤。
- 对于一个数据库表到特性的简单连接,DatabaseJoiner可能更有效(如果索引了键字段)。DatabaseJoiner不需要SQL知识。
特征连接方法的选择
许多转换器可以根据匹配的属性、表达式和/或几何图形执行数据连接。在为特定的连接任务选择一个连接时,需要考虑连接的复杂性、数据格式、索引、冲突处理和期望的结果。有些转换器使用SQL语法,有些则直接访问外部数据库。他们可能支持,也可能不支持列表属性阅读和创作。
一般来说,选择一个最具体的任务,您需要完成将提供最佳的性能结果。如果有不止一种方法可以完成(通常是这样),那么在性能测试替代方法上花费时间可能是值得的。由于读取外部表时是否存在关键索引(与工作空间中已经存在的功能相反),性能可能会有很大差异。
变压器 |
匹配的 |
使用SQL语句 |
可以创建列表 |
输入类型 |
值得注意的 |
描述 |
---|---|---|---|---|---|---|
特色木匠 | 属性 | 没有 | 没有 | 特征 |
|
通过基于公共键属性值组合特性的属性和/或几何形状来连接特性。执行等同于Inner、Left和Full SQL连接的操作。 |
FeatureMerger | 属性 | 没有 | 对 | 特征 |
|
根据匹配的关键属性值和表达式,将一组特征的属性和/或几何形状合并到另一组特征上。 |
基于列表的功能合并 | 将属性列表为单个属性 | 没有 | 对 | 特征 |
|
基于匹配将一组要素的属性和/或几何图形合并到另一组要素上列表属性带有键属性值和表达式的值。 |
InlineQuerier | SQL查询 | 对 | 没有 | 特征 |
|
从引入的特性创建一组SQLite数据库表,对它们执行SQL查询,并将结果作为特性输出。 |
SQLCreator | SQL查询 | 对 | 没有 | 外部分贝 |
|
根据对数据库执行一次SQL查询的结果生成FME特性。为SQL查询结果的每一行创建一个FME特性。 |
SQLExecutor | SQL查询 | 对 | 没有 | 外部分贝 |
|
对数据库执行SQL查询。对于进入转换器的每个初始特性,都会向数据库发出一个查询。初始特性和查询结果都可以作为特性输出。 |
DatabaseJoiner | 属性 | 没有 | 对 | 外部DB及特性 |
|
基于一个或多个通用键,将外部表的属性连接到工作空间中已经存在的特性。不需要SQL知识。非阻塞的变压器。 |
匹配器 | 几何和/或属性 | 没有 | 对 | 特征 |
|
检测相互匹配的特征。当要素具有匹配的几何图形、匹配的属性值或两者都具有时,将其声明为匹配。还可以指定特征之间必须不同的属性列表。 如果仅对属性(而不是几何体)进行匹配,则使用FeatureMerge或其他方法将提供更好的性能。 |
配置
输入端口
SQLCreator没有输入端口。
输出端口
由SQL查询产生的特性。
参数
格式 | 选择数据库格式。 |
数据集/连接 | 根据选择的格式,选择数据集或使用/配置数据库连接。 |
参数 | 格式特定参数 |
Coord系统。 | 连接到的数据库的坐标系统,以及Result输出特性的坐标系统。 保留为默认值(从源读取)或使用坐标系库中的选择。 |
SQL语句 | 使用文本编辑器指定SQL查询。 可以使用关键字指定的字符分隔多个SQL命令FME_SQL_分隔符,嵌入在SQL语句的最开头。紧跟在该关键字后面的单个字符将用于拆分SQL,然后将其发送到数据库执行。(注意:在字符前包含空格。) 单个语句的前面可以加上连字符,表示应该忽略错误。 下面的示例包含两个SQL命令,其中第一个命令的错误将被忽略: FME_SQL_分隔符; -从表格A中选择*; Select * from tableb; |
要公开的属性 | 输入要在查询创建的特性上公开的属性名称。属性将按照列表中指定的顺序输出。 注:默认情况下,结果要素的属性将隐藏。通过输入属性名称,可以指定要公开的属性。单击要公开参数的属性旁边的浏览按钮。您还可以使用SQL语句通过按“从SQL查询填充…”并输入SQL查询来填充列表。第一个匹配功能中的列将用于填充属性列表。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配转换器参数。更高级的函数,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击除适用参数外。有关更多信息,请参见变压器参数菜单选项.
定义值
有几种方法可以定义在转换器中使用的值。最简单的方法是简单地键入值或字符串,其中可以包括各种类型的函数,如属性引用、数学和字符串函数以及工作空间参数。有许多工具和快捷方式可以帮助构造值,通常可以从值字段旁边的下拉上下文菜单中获得。
使用文本编辑器
文本编辑器提供了从各种数据源(如属性、参数和常量)构造文本字符串(包括正则表达式)的便捷方法,其中结果直接用于参数内部。
使用算术编辑器
算术编辑器提供了一种方便的方法来从各种数据源(如属性、参数和功能函数)构造数学表达式,其中结果直接在参数中使用。
条件值
根据通过或失败的一个或多个测试条件设置值。
内容
表达式和字符串可以包含许多函数、字符、参数等等——无论是直接在参数中输入,还是使用其中一个编辑器构造。
参考
加工行为 |
不适用 |
特征保持 |
不适用 |
依赖关系 | 格式依赖-某些格式可能需要第三方驱动程序 |
FME许可级别 | FME专业版及以上 |
别名 | |
历史 | |
类别 |
FME社亚搏国际在线官网区
FME社区是演示亚搏国际在线官网、操作指南、文章、faq和更多内容的地方。获得问题的答案,向其他用户学习,并对新功能提出建议、投票和评论。
寻找关于SQLCreator的所有结果关于FME社区。亚搏国际在线官网
例子可能包含在开放政府许可证-温哥华下许可的信息