网盘:https://pan.baidu.com/s/1jlyxineRQ_2n-pVHJn1_MA#list/path=%2F
提取码:2021
前言
我们可以借助FME Server 2020中的自动化功能和数据库的触发器功能来监测PostgreSQL数据库更改情况,并实时推送数据。虽然数据库自带的触发器功能也可以通过FME工作空间的Webhooks将任务直接发送到FMEServer上去。然而,使用此方法会错过Automations提供的其他功能,例如webhook触发器,多工作空间链接,电子邮件通知等等。所以通过将FMEServer的自动化功能与PostgreSQL数据库触发器相结合,再将这些过程应用于我们项目的工作流程时,就可以实现更加丰富多样的功能搭配组合。
那么,为什么我们要了解数据库触发器呢?这里您可以假设一下,有一个中央内部数据库,其中包含需要同步的外部应用程序数据集。每当中央数据库发生更改时,更新对应的外部应用程序数据集就需要大量时间和手动工作。而如果我们在FMEServer中使用数据库触发器,那么FME Server中的自动化功能将自动以高效且简化的过程为您完成所有数据同步工作。
软件要求
-
FME Server2020
-
FME Desktop 2020
-
PostgreSQL 12
-
PostGIS扩展
-
PL / Python(Python 3)
-
-
ArcGIS Online帐户(最低Creator许可证)。
方案概述
1、通过FME Server发送任务请求并调用FME Server上一个简单的工作空间可以将数据加载到PostGIS数据库中。
2、数据库中的设置好的触发器函数将检测到所有发生的数据库更改,并使用补充函数将JSON格式的消息发送到Automationwebhook触发器上。
3、FME Server上的自动化处理流程中包含一个消息处理工作空间,用于解析已编辑记录的ID、已执行的数据库操作以及进行编辑的日期信息。解析的结果将被写入到担任实时更改日志功能的ArcGISOnline要素服务中。
注意:本文中使用的工作空间,自动化功能和SQL脚本是相对基本的,目的是说明FMEServer针对数据库的应用潜力。可以对代码段和脚本进行自定义修改以适应您的需求和环境。本文所使用的是空间数据库进行操作,您也可以将相同的方法应用于非空间数据。
1.设置PostgreSQL数据库和Python
接下来让我们开始示例演示。第一步是安装PostgreSQL并将其用作我们的中央数据库。在此演示中,我们将使用PostgreSQL12数据库。安装PostgreSQL后,我们需要打开StackBu