读数据库遇到空就进行不下去_【FME HOW TO系列】03 对表格或图形数据进行排序...

概述

使用FME可以多种方式对表格数据进行排序。您可以使用FME Data Inspector对属性进行整理,以手动对列进行排序,也可以在Workbench中使用Sorter转换器。Sorter函数类似于SQL函数:ORDER BY。在本教程中,您将学习如何在FME Data Inspector中对表格数据进行排序并使用Sorter转换器。


sort-tabular-data.fmwt

drinkingfountains.csv

注意:由于您正在处理面向公众的数据库,因此有时可能会覆盖和/或修改表。如果您的转换产生意外结果,请参阅重置PostGIS培训数据库文章。或者,您可以下载提供的文件,并使用适当格式的转换器替换PostGIS转换器。

练习1 - 使用FME Data Inspector对数据进行排序

在这种情况下,您希望能够使用FME Data Inspector按升序或降序(按字母顺序或数字顺序)对表格数据进行排序。

说明

1.启动FME Workbench

如果尚未打开,请启动FME Data Inspector。

2.打开数据集

使用快捷键CTRL + O,打开文件夹图标,或导航到文件 - >打开数据集。

3.选择要查看的数据集

将读模块格式设置为PostGIS。

接下来,从读模块r Connection列表中选择PostGIS Training Database。如果尚未设数据库连接,请选择“添加数据库连接”并输入以下参数:

主机:postgis.train.safe.com

端口:5432

数据库:fmedata

用户名:fmedataPassword:fmedata

接下来,打开读模块参数并从表列中选择DrinkingFountains表。

424913ff8dd0b34c0501d1c12f252c89.png

4.排序列(升序)

在Data Inspector的“表视图”部分中,单击“fountainid”列标题以按升序排序。

cd0642bd36dde1fdb311dbd4f27c2759.png

如果属性未正确排序,则可能使用了错误的排序方法。右键单击列标题,然后从下拉列表中选择Sort Numeric Ascending排序方法。

5.排序列(降序)

再次单击“fountainid”列标题可将列排序从升序更改为降序。

74a0275174b93a91a882c90ee4e62506.png

6.清除所有排序

右键单击任何列标题,然后选择“清除所有排序”。这将删除已应用于表的所有排序,并将数据集返回到其原始顺序。


练习2 - 使用Sorter按字母顺序对数据进行排序

在这种情况下,您希望能够按多列对表格数据进行排序。首先,您希望您的表根据maintainer字段按字母顺序,然后根据fountainid字段按数字顺序降序排列。

注意:此处显示的场景可能与预期的实际应用程序不同。由于使用面向公众的数据库所面临的挑战,您将在这里读取DrinkFountains表并最终写入名为DrinkingFountainsSorted的表。您可能会注意到DrinkFountainsSorted已存在于预期的数据模型中,因为其他用户也会运行相同的工作空间。实际上,您可能会读取DrinkFountains,并使用“使用现有”表处理,因为您只是重新排序表中的要素。

说明

1.启动FME Workbench

如果尚未打开,请启动FME Workbench。

2.选择“生成工作空间”

在“开始”页面的“创建工作空间”部分中,选择“生成工作空间”选项。 

注意:生成工作空间的快捷方式是Ctrl + G.

bc8754e5c27d09303a009938d3750ff1.png

3.设置读模块格式并连接到PostGISTraining Database

在“生成工作空间”对话框中,将“读模块格式”设置为PostGIS。

接下来,从读模块连接列表中选择PostGIS Training Database。如果尚未设置数据库连接,请选择“添加数据库连接”并输入以下参数:

主机:postgis.train.safe.com

端口:5432

数据库:fmedata

用户名:fmedata

密码:fmedata

接下来,打开读模块参数并从表列中选择DrinkingFountains表。

89c271ecb6bb67b2c80983302e4e9e46.png

4.设置写模块格式并连接到PostGISTraining Database

将写模块格式设置为PostGIS,将写模块连接设置为与读模块(PostGIS Training Database)相同的连接,然后单击OK以生成工作空间。“生成工作空间”对话框应如下面提供的屏幕截图:

f3a255d48137a97a246c9f44a66bbc58.png

5.设置要素操作和表处理

生成工作空间后,双击“写模块要素类”以打开“写模块要素类参数”对话框。

在“常规”部分中,将“表名称”设置为“DrinkFountainsSorted”。

在“表”部分中,确保“要素操作”设置为“插入”并将“表处理”设置为“删除和创建”。

4ef2f62275d9482ca4b40cfe20c530bb.png

注意:当需要清空表并对数据库模式进行更新时,将使用Drop和Create。例如,drop和create用于删除表结构,可能是添加或删除列,更改数据类型等。有关写模块要素类参数(如表处理)的详细信息,请参阅文档。

6.更新属性

切换到写模块参数对话框中的用户属性选项卡,将属性定义设置为Automatic。

单击“确定”接受更改并关闭“写模块参数”对话框。

382e3424c69f6d48b72209d453e1aa7b.png

注意:自动属性定义是指Workbench自动定义属性列表时,具体取决于所连接的读模块要素类。此外,只要在工作空间中更改(即重命名,删除等)属性,写模块要素类上的属性列表就会自动更新。有关用户属性和属性定义的更多信息,请参阅文档。

7.添加Sorter

要将“Sorter”添加到画布,通过键入“Sorter”以显示“快速添加搜索”中的FME转换器列表。通过双击或使用箭头键来选中转换器列表中的Sorter,然后回车键将其添加到工作空间中。

添加转换器后,将DrinkingFountains读模块连接到Sorter,然后连接Sorter:Sorted端口到DrinkFountainsSorted写模块。

8.按字母顺序排序

添加Sorter后,双击Sorter或单击齿轮图标以打开转换器参数对话框。

在Sort By部分中,单击Attribute列下的空单元格,然后从下拉列表中选择“maintainer”属性。

接下来,再次从下拉列表中进行选择,确保Alpha / Num设置为Alphabetic并且Order为Ascending。

同样,设置第二个Sort By条件以按数字降序排序“fountainid”属性。

b3287c39ef772f319649af7dffc0ed8c.png

注意:Sort By操作的顺序将决定首先排序哪个列(列表顶部先排序)。您可以使用对话框底部附近的向上和向下箭头调整每个排序条件的顺序。

9.运行工作空间

单击工具栏上的“运行”按钮,或使用菜单栏上的“运行”>“运行转换”运行工作空间。

1cb088406cf1e36546a1e05768c6ad40.png

运行表后,您的表将按Sorter参数中定义的排序方法进行排序。您可以通过选择写模块并单击选择写模块时出现的快捷菜单中的“检查”按钮来查看新表。

结果

输入

c501c92dc5d27b3b549f2e0060bf5775.png

输出

548776da3ebd15587efe89875d670f9d.png


转换器

Sorter - 按选定属性的值对要素进行排序。

2d6aabe7b39cc8febcac6447e353a9d2.pngFME HOW TO系列文章回顾 01 如何在FME中执行此操作

02 将列添加到表中

......不断更新中.....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值