span8
span4
这个示例旨在展示FME编写器如何处理数据,数据如何影响性能,以及如何控制数据。
作为一个类比,我喜欢把它比作机场的候机室;就像拥有多个写入器一样,一个机场可以有多个航班——由于FME不是多线程的,这意味着我们的机场只有一个登机口。这意味着我们必须使用特殊的技术来避免候机室过于拥挤。
这个练习从一个OpenStreetMap数据阅读器开始。数据被分成组,每个组被分配给一个特定的写入器。
目前的作家没有任何特别的方式命令。任务是评估每个组包含多少数据,并相应地对写入器重新排序。
请注意克隆转换器和一个已发布的参数来控制它们。这些转换器用于增加源数据特性,以降低工作空间的速度,并帮助识别由编写顺序引起的差异。只有少量数据时,性能的任何变化可能只是随机波动。
详细步骤
1)启动FME工作台,打开工作区(或模板)。
运行工作空间。检查日志窗口。记录运行工作空间所花费的时间和使用的最大内存。在我的电脑上,我得到:
FME会话持续时间:29.0秒。(CPU: 24.1用户,0.6s系统)
进程结束:7568,峰值进程内存使用量:220316 kB
默认情况下,写入器按照它们在Navigator窗口中出现的顺序执行,因此原始顺序为土地利用,建筑,公路,环境。但是,可以通过在导航窗口中拖动一个写入器到另一个写入器上面来改变顺序:
2)按特征类型评估数据。
检查每个数据组存在多少特性类型。对编写者重新排序,使具有最多特性类型的组是第一个编写者,然后依次是其余的编写者。
运行并重新检查日志。在我的电脑上,结果是:
FME会话持续时间:29.6秒。(CPU: 23.8s用户,0.5s系统)
进程结束:4468,峰值进程内存使用量:219976 kB
这会减少你电脑上的时间或资源吗?您认为特性类型的数量对于我们的目的来说是一个很好的数据量评估吗?
3)根据特征评估数据。
在您刚刚运行的工作区中,记录下特性计数(即发送给每个编写器的特性数量)。对编写者重新排序,使具有最多特性的组是第一个编写者,然后依次是其余的编写者。
运行并重新检查日志。在我的电脑上,结果是:
FME会话持续时间:25.2秒。(CPU:用户23.5 5s,系统0.5 5s)
进程结束:4513,峰值进程内存使用量:219236 kB
这会减少你电脑上的时间或资源吗?您认为特性类型的数量对于我们的目的来说是一个很好的数据量评估吗?
4)根据文件大小评估数据。
浏览输出数据文件并检查每个文件的大小。重新排序写入器,使文件大小最大的组是第一个写入器,然后依次是其余的写入器。
书写顺序有什么不同吗?如果是,运行并重新检查日志。
5)评估完整的作者订单
在以上所有情况中,写入器的完整顺序重要吗?还是只需要先获得最大的数据集?尝试将文件顺序调整为最大、最小、第三大、第二大。
重新运行工作区并检查日志。有区别吗?为什么你认为是这样/不是这样?
6)检查第一个特征设置
在导航窗口中,找到一个名为Order writer的工作空间设置:
请注意如何更改该参数以允许根据特征到达的顺序设置作者顺序(例如,在机场类比中,第一个到达的乘客决定先登上哪架航班)。
如何控制工作空间中特性的顺序?记住,我们已经了解到阻塞变压器会影响数据的顺序,因此也会影响写入的顺序。
为什么要使用这种方法?
数据属性
此处使用的数据来源于由开放地图和它的贡献者。它包含的信息授权下开放数据共享开放数据库许可证(ODbL)OpenStreetMap基金会(OSMF)。
©2019安全亚搏在线软件公司法律