斯潘8
斯潘4
如中所述上一篇文章,任何格式的读卡器数据集都可以用作传出模式的源。要记住的关键是,动态编写器需要能够找到该模式定义,按名称,以便此工作流工作。亚搏在线
那么当你用一个全新的名字写数据时会发生什么呢?
在这种情况下,您需要在编写器的功能类型中使用一个称为“架构定义名称”的特殊参数。此参数通知编写器在搜索源以查找匹配架构时要使用的正确名称。
以下是您可能遇到这种情况的几个原因:
在下面的示例中,为了以数据库的形式提供更新的城市模式,已经设置了一个项目。此数据库已预定义,但包含通用功能类型名称。为了创建一个动态工作流并用该数据库中的模式写出数据,亚搏在线必须将数据库作为工作区资源添加到工作区。然后,我们将更改输出数据集名称,以将城市作为前缀(即温哥华公交车站)。
包含架构的空间网站数据库:
1。添加源数据集
打开FME到新的工作区,从读卡器菜单中选择“添加读卡器”。
2。添加目标数据集
从“编写器”菜单中选择“添加编写器”。
三。将数据库添加为资源
使用此函数将数据库作为读卡器资源加载到工作区中:
一旦数据库被添加,在“导航器”窗口中放置一个条目:
4。创建新表名属性
我们将把现有的功能类型名称与城市名称“温哥华”连接起来。为此,添加一个StringCocatenator并按以下方式填写详细信息:
5。模式映射
确保工作区包含正确的映射,以匹配数据库包含的新属性架构。在这个例子中,属性管理器变压器用于提供此功能。使用下表创建属性映射。将attributeManager连接到StringCocatenator,然后将attributeManager输出端口连接到动态编写器。
输入属性 | 输出属性 |
原始指标 | PID |
班 | 道路等级 |
特技 | 特技 |
数车道 | 公路车道 |
劳顿数 | 路由选择 |
套路 | 路由类型 |
类型 | 道路类型 |
名称 | 帕克名字 |
名字命名 | 名字命名 |
止动器 | 止动器 |
停名 | 停止名称 |
6。在编写器功能类型中设置架构定义
打开动态编写器功能类型,并将表名设置为包含新名称的属性。在下图中,已将空间网站数据库作为“架构源”输入。使用“模式定义名称”设置的原始fme_feature_type属性,以便编写器可以在空间网站数据库中找到表名(如果不这样做,编写器将在数据库中查找连接的名称,但找不到正确的功能类型):
7。运行工作区
运行,然后检查输出数据集是否具有正确的架构。
最后的想法
在这个阶段,以后的任何更新都可以添加到此工作流,而无需更改现有工作区布局。亚搏在线也,可以在FME环境之外对数据库模式进行更改,并且工作区可以自动处理新模式。
注:在上述示例中,如果数据库模式确实发生了变化,用户需要更正attributeManager转换器以提供正确的属性映射。然而,在这个场景中使用SchemaMapper Transformer将提供一个外部方法来处理任何映射问题,不需要更改工作区。对于复杂的工作流,亚搏在线这是未来缓解维护问题的完美方法。这将在中进一步讨论高级技术-使用模式映射器.
完整的SchemaMapper教程可以在这里找到:SchemaMapper Transformer教程
?2019安全亚搏在线软件公司|合法的