免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1923|回复: 6
收起左侧

【FME- HOW- TO系列】02 将列添加到表中

[复制链接]

665

主题

2万

铜板

34

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
20649

精华勋章爱心勋章地信专家组贡献勋章冰雪节勋章

发表于 2021-3-30 14:18 | 显示全部楼层 |阅读模式
将列添加到表中   
概述

可以通过使用AttributeCreatorAttributeManager以及FeatureHolder将新列添加到现有表中,来防止模式锁定。在本教程中,您将学习如何使用AttributeManager将新列追加到现有的PostGIS表。


下载

add-column-to-table.fmwt

3531-downtown.csv

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

练习

在本练习中,您将使用AttributeManager添加新列,因为您要跟踪上次审查资产的时间。我们将通过使用DateTimeStamper添加今天的日期来填充这个新字段。或者,您也可以计算数值连接表格或将值保留为NULL。

注意:此处显示的场景可能与预期的实际应用程序不同。由于使用面向公众的数据库的挑战,您将在这里阅读Downtown_PublicArt表并最终写入名为PublicArt_Date的表。您可能会注意到PublicArt_Date已存在于预期的数据模型中,因为其他用户也会运行相同的工作空间。实际上,您可能会从Downtown_PublicArt(有2列)中读取数据,然后删除并使用附加的列创建Downtown_PublicArt。

说明

1.启动FME Workbench

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

2.生成工作空间

  • 在“开始”页面的“创建工作空间部分中,选择“生成(工作空间)”选项。或者,您可以使用快捷键Ctrl + G.

有关创建转换的详细信息,请参阅“ 桌面基础课程手册”

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

  • 在“生成工作空间”对话框中,将“读模块格式”设置为PostGIS。
  • 接下来,从读模块连接(读模块 Connection列表中选择PostGIS Training Database。如果尚未设置数据库连接,请选择“添加数据库连接”并输入以下参数:
  • 接下来,打开读模块 Parameters并从Table List中选择Downtown_PublicArt表。

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

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

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

  • 生成工作空间后,双击“写模块要素类以打开“写模块要素类参数”对话框。
  • 在“常规”部分中,将“表名称”设置为PublicArt_Date
  • 在“表”部分中,确保“要素操作”设置为“插入”并将“表处理”设置为“删除和创建”。

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

6.更新属性

  • 切换到写模块参数对话框中的用户属性选项卡,将属性定义设置为自动
  • 单击“确定”接受更改并关闭“写模块参数”对话框。

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

7.使用FeatureHolder关闭源表

在删除现有的PublicArt表之前,需要由FME关闭该表以防止模式锁定 - 这将导致您的转换出错。我们将使用FeatureHolder从PublicArt表中读取和存储要素。存储完所有要素后,将关闭现有表,允许FME删除现有表并创建新表。

  • 通过键入“FeatureHolder”将FeatureHolder添加到画布,以在快速添加搜索中显示FME转换器列表。通过双击或使用箭头键和Enter键将其添加到画布,从转换器列表中选择FeatureHolder。
  • 添加转换器后,将Downtown_PublicArt 读模块连接到FeatureHolder。

8.使用AttributeManager创建新列

  • 将AttributeManager放在FeatureHolder之后。AttributeManager将用于向Downtown_PublicArt表添加新列。

9.创建一个新列

  • 添加AttributeManager后,双击AttributeManager或单击齿轮图标以打开转换器参数对话框。
  • 单击“输出属性”列的“<添加新属性>”的最后一行以创建新列。
  • 将新属性名称设置为“日期”,这将自动将操作更改为“设置值”。

注意:AttributeManager允许您添加/删除表列,更改属性名称,以及从现有FME要素属性或使用文本编辑器设置属性值。在桌面基础课程手册中有关于管理属性的详细信息。

10.添加今天的日期

  • 在AttributeManager之后添加DateTimeStamper转换器。添加转换器后,将其连接到AttributeManager:Output端口。接下来,将DateTimeStamper:Output端口连接到PublicArt_Date写模块
  • DateTimeStamper正确连接后,打开转换器参数。
  • 在DateTimeStamper parameters对话框中,将Result Attribute设置为“date” - 这会将“date”字段的值设置为刚刚在AttributeManager中创建的列中的当前日期。分配结果属性后,单击“确定”。

11.运行工作空间

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

运行转换后,您的表格将包含一个包含今天日期的日期列。您可以通过选择写模块并单击选择写模块时出现的快捷菜单中的“检查”按钮来查看新表。或者,如果要自动打开工作空间输出FME Inspector,可以将 Inspector附加到工作空间中最终转换器的输出端。

结果输入

输出


转换器
  • AttributeManager - 通过添加,重命名,复制,删除和重新排序来更改多个属性。
  • DateTimeStamper - 以本地或UTC时间的形式,以日期,时间(有或没有UTC偏移)或日期时间(有或没有UTC偏移)的形式将一个时间戳添加到要素中作为新属性。
  • FeatureHolder - 存储传入的要素,直到它们全部到达,然后按原始顺序释放它们。
本文转载来自CSDN作者:fmechina  版权归作者所有

1

主题

3781

铜板

4

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
788
发表于 2021-3-30 16:01 | 显示全部楼层
谢谢分享
回复

使用道具 举报

10

主题

2万

铜板

34

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4394

精华勋章灌水勋章活跃勋章贡献勋章

发表于 2021-3-30 17:20 | 显示全部楼层
谢谢分享
回复

使用道具 举报

2

主题

4万

铜板

7

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6445
发表于 2024-3-4 19:39 | 显示全部楼层
谢谢分享
回复

使用道具 举报

2

主题

4万

铜板

7

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6445
发表于 2024-7-17 12:21 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

2848

铜板

0

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
752
发表于 2024-9-26 17:32 | 显示全部楼层
感谢分享,学习了
回复 支持 反对

使用道具 举报

6

主题

2万

铜板

15

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
21829
发表于 2024-9-26 17:48 | 显示全部楼层
谢谢分享谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表