关于SQL语句在学习FME中的作用

文章介绍了SQL语句在FME(FeatureManipulationEngine)中的重要作用,包括使用SQLCreator和SQLExecutor执行数据库操作,InlineQuerier进行查询,以及在数据读取时利用WHERE条件优化。此外,还提到了FME中与SQL函数相似的转换器,如TextEditor函数和特定的转换器,如StringReplacer,用于处理和筛选数据。
摘要由CSDN通过智能技术生成

关于SQL语句在学习FME中的作用

随着我国地理信息技术的快速发展,信息化测绘技术不断改进完善。各种数据大批量产生,大数据时代来临。身处地理信息行业的我们或多或少都在接触数据库,具有一定的SQL语句基础知识,那么如何在FME中正确使用SQL语句呢?

如果你和小编我一样是先学习的SQL语句再学习的FME,那么你在学习FME的过程中将会事半功倍。接下来小编就把自己在学习SQL语句和学习FME的过程中的一些经验分享给大家。

一:SQL语句在FME中的应用

序号

分类

转换器或

其他

详细介绍

1

SQL语句直接使用

SQLCreator

SQLExecutor

对数据库执行SQL语句或根据SQL语句将数据库记录提取。FME要素执行数据库连接执行SQL数据库表操作(创建,删除,修改,截断)在数据加载之前或之后创建或删除索引或约束。

2

InlineQuerier

从传入要素创建一组SQLite数据库表,对它们执行SQL查询,并将结果作为要素输出。

3

SQL语句语法

FeatureReader

通过SQL语句中的WHERE条件对数据的读取进行控制,读取需要的数据。

4

SQL语句常见函数

类似功能转换器或文本编辑器中的各类函数

通过转换器修改属性或者通过函数修改属性,判断等。

5

SQL语句正则

StringReplacer

StringSearcher

ListSearcher

通过正则修改属性或者通过函数修改属性,筛选数据等。

二:SQL语句在FME中直接使用

当我们需要对数据库执行SQL语句时,可以在FME中直接执行SQL语句,再通过FME强大的转换器及多种数据格式的读写能力,那么通过FME对数据库数据进行处理时将取得极大的便利。

转换器SQLCreator :对数据库执行SQL语句或根据SQL语句将数据库记录提取为FME要素。

转换器SQLExecutor:执行数据库连接SQL数据库表操作(创建,删除,修改,截断)在数据加载之前或之后创建或删除索引或约束。

转换器InlineQuerier :从传入要素创建一组SQLite数据库表,对它们执行SQL查询,并将结果作为要素输出。当不知道想要实现某种SQL语句功能时,或不知道FME中的函数或者转换器时,可以在该转换器内写SQL语句替代其作用。

三:SQL语句语法在FME读取数据时的妙用

当我们需要根据特定条件读取数据时,可以通过类似SQL语句中的WHERE语句对数据库进行筛选读取,可以极大提升效率,减少数据读取时间。

支持常见SQL查询语句语法,例如等于、OR、LIKE语句等。

四:SQL语句常见函数在FME处理数据时的替代

当我们想要通过某种条件对属性进行修改或判断时,可在数据库中通过SQL语句的函数逻辑去实现,主要有2中解决方法:

  1. 通过文本编辑器中的函数(要素函数,字符函数,数学函数,日期时间函数)。
  2. 通过实现相同功能的转换器。

FME中函数汇总

FME中与SQL函数相同作用的转换器或参数汇总

序号

函数类型

函数名称

含义

FME函数或转换器

1

截取函数

Left

返回指定最左边的字符数

Left

2

RIGHT

返回指定的字符最右边的数值

RIGHT

3

MID

返回指定位置开始,字符数字符串

Substring

4

SUBSTRING/SUBSTR

返回指定位置开始,字符数字符串

Substring

5

字符替换

REPLACE

替换出现一个指定的字符串

ReplaceString(函数)/StringReplacer(转换器)

6

字符数统计

LENGTH

返回字符串中的字节长度

StringLength(函数)/StringLengthCalculator(转换器)

7

字符拼接

CONCAT

拼接多个字符

文本编辑器

8

搜索字符位置

LOCATE

返回字符串的第一个出现的位置

StringSearcher/ListSearcher

9

大小写替换

LOWER

返回参数的小写

StringCaseChanger转换器

10

UPPER

转换为大写

11

数值函数

ROUND

返回数值表达式四舍五入到整数。可用于舍表达式为数字小数点

ROUND(函数)/AttributeRounder(转换器)

12

时间函数

YEAR

返回日期参数中的年份

FME函数用特(殊格式字符串标志),详细用法文本编辑器中的帮助

13

MONTH

返回日期参数的月份

14

HOUR

提取小时

15

WEEK

返回参数的星期数

16

CURDATE

返回当前日期

17

CURTIME

返回当前时间

18

DATE_ADD

将两个日期相加

19

DATEDIFF

将两个日期相减

20

DAYNAME

返回某天在用星期中的名称

21

NOW

返回当前日期和时间

22

QUARTER

返回日期参数所在的季度

五:SQL语句正则在FME处理数据时的替代

当我们想要通过某种正则表达式对属性进行修改或筛选时,在数据库中通过正则表达式执行,而FME同样可以通过以下三个转换器(StringReplacer,StringSearcher,ListSearcher)实现。同时在数据库中支持的正则表达式在FME中依然支持。

常见正则表达式汇总表

序号

字符

字符说明

1

^

匹配字符串的开始位置,若用在中括号中[ ] 时,表示不匹配括号中字符串

2

$

匹配字符串的末尾,若设置了表达式对象的Multiline属性,则也匹配’/n’或’/r’

3

.

匹配单个字符

4

*

匹配前面子表达式 0次或多次(至少有一次)

5

?

匹配前面子表达式 0 次或 1 次 (至多有一次)

6

+

匹配前面子表达式 1 次或更多次

7

{m}

匹配 m 次

8

{m,}

至少匹配 m 次

9

{m, n}

至少匹配 m 次但不超过 n 次

10

()

匹配括号中全部字符

11

[]

匹配括号中一个字符,范围描述,如[0-9] [a-z] [A-Z]

12

{}

用于限定匹配次数,如 {n}表示匹配n个字符,{n,}表示至少匹配n个字符,{n,m}表示至少n个最多m个

13

\

转义字符,如上基本符号匹配都需要转义字符 ,如 * 表示匹配*号

14

\w

表示英文字母和数字

15

\W

表示非字母和数字

16

\d

表示数字

17

\D

表示非数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值