第8页
第4排
FME服务器通知服务允许创建发布-一种通过受支持的协议从客户端接收内容的方法。此内容作为主题的通知传递。出版物的例子可能是收到的电子邮件,目录监视,质量标准。这些发布包含通知新事件的逻辑。
如果您的客户机或数据集不支持作为FME中的发布,您可以创建一个工作区,并安排它以所需的间隔在FME服务器上运行。然后可以使用工作区发送通知来触发订阅(这可能是另一个要进行处理的工作区)。
要构建可检查系统或数据集状态的工作区,检查FME工作台是否支持数据格式或通信方法。
如果要检查数据集的更改或新功能,数据集是否有任何字段包含有关何时更改数据的信息,例如,时间戳。
如果数据集无法识别变更,您想保留数据的副本以进行比较(缓存)还是只处理整个数据集?
有了数据缓存,可能需要考虑数据大小和存储。如果你有一个大的数据集,将两组数据读取到工作区进行更改检测可能会增加工作区运行时和内存使用。您还需要足够的空间来存储数据的副本。
一些工作流亚搏在线可能需要一组最新的数据(例如当前数据的数据库表)。在这种情况下,您将已经有一个要与之比较的数据集,并且不需要重复的变更检测。如果您的工作流正亚搏在线在读取数据集并发布通知(例如,基于新数据或更改的电子邮件通知或短信息,不存储数据,这可能需要数据缓存。
变化检测器变压器可用于比较两组数据。
如果以支持SQL查询的格式缓存或存储数据,这可以节省时间,不需要FME读取整个数据集,只有两个值不同的功能。
在这种情况下,空气质量的卡通数据集需要保持最新。当前的空气质量值是从JSON数据馈送中获取的,写在卡通片上以便在地图上可视化。
有几种方法可以做到这一点:
变化检测器:
在此工作区中,正在读取现有的carto数据,以及JSON空气质量数据源。
两个数据集都通过changedetector传递,匹配UUID上的数据。已添加的任何功能都将发送到卡通作者以更新数据集。
特征读数:
此工作区获得的输出与使用FeatureReader使用ChangeDetector获得的输出相同。FeatureReader连接到Carto数据集,但只能读取请求的功能。在这种情况下,这由WHERE子句指定:
@value(uuid)=“uuid”和@value(aqi)!=“空气质量指数”
FeatureReader正在寻找UUID匹配的功能,但是空气质量指数是不同的。当读取这些特征时,空气质量指数值之间会发生冲突,所以FeatureReader设置为“使用启动器”,获取最新的空气质量指数值,并将其发送给制图员以更新数据集。
SQL执行器:
还有一个步骤是使用sqlExecutor来识别carto数据集中的特征,其中空气质量指数值与JSON数据馈送不同,并通过SQL进行更新。
更新aqdata set aqi='@value(aqi)',其中uuid=@value(uuid)和@value(aqi)!=“空气质量指数”
如果您的数据有时间戳,您可以使用它来比较数据是更新的还是自上次运行工作区以来更新的。
如果有常规计划,可以使用新的DateTimeCalculator根据时间间隔确定时间戳是否较新。
如果有可能你的工作在运行中被延迟,导致时间间隔不一致,您可以记录工作区上次运行时间。这可以存储在FME服务器上,每次运行工作区时都要读取和更新。
在本例中,工作区被分成两个部分。第一部分读取工作区的最后一次运行时间,并使用variablesetter和variableretriever将时间戳传递到工作区的另一半。
输入数据是温哥华道路工程的一个原子饲料,包含更新的时间戳。计算工作区运行时和数据更新之间的差异。任何大于0的间隔值都是新的计划道路工程或更新的现有道路工程,这些可以过滤处理或通知。
将工作区发布到FME服务器后,可以将其设置为按计划运行。
“时间表”选项卡(在FME 2017的左侧)将显示现有时间表的列表,显示有关计划以及是否已启用的信息。
创建新计划允许您输入名称,计划的类别和说明。循环可以设置为按间隔运行,一次或基于cron表达式进行更复杂的调度。
选择正确的工作区后,可以应用更多设置。通知有关工作成功或失败的主题,展开“通知”视图。
在2017年,一些额外的财产可以按时间表设置,如“取消前运行”,“排队作业到期时间”和“正在运行作业到期时间”。
?2019安全亚搏在线软件公司|法律