span8
span4
此示例旨在说明哪些参数可以清除阻塞的转换器。
这个练习首先从一个计算温哥华市停车计时器统计数据的工作空间开始。它将数据分组在一起,因此重要的部分是探索如何“解锁”分组转换器以更有效地工作。
1)启动FME工作台,打开工作区(或模板)。请注意,我们正在读取停车计时器的数据集,并计算每个社区的最低、最高和平均停车率;这是通过将group by设置为Neighborhood来完成的。
右键单击统计计算器和记录器/检查器转换器之间的连接。选择添加断点选项:
2)从菜单栏中选择Run > Run with breakpoints:
确保关闭了功能缓存!断点和特性缓存彼此不兼容。
现在运行工作区。请注意,所有的源特性都是从源数据集读取的,因此在生成第一个输出特性之前,需要读取8602个特性(并将其存储在内存中)。
单击“继续到下一个断点”按钮,使每个特性一次输出一个。对一些特性执行此操作,然后单击Stop按钮停止翻译。
注:如果特性计数最初停留在8144,那是因为尚未更新显示所读取的特性的实际数量。日志消息“清空工厂流水线”确认数据现在已经全部读取,显示只是为了赶上。
因此,统计标量是一个阻塞变压器。它保存了所有的米特征,直到它有了所有的,这样它就可以形成组。我们能够“解除阻塞”transformer并保存资源的惟一方法是,数据已经预先按邻域顺序排序。
因此,在数据检查器中打开源数据并检查表视图中的邻居列。它应该显示数据已经按照以下顺序按社区排序:Downtown、Fairview、Kitsilano、Mount Pleasant、Strathcona、West End。
4)返回工作台,将StatisticsCalculator参数输入按组排序:
重新运行转换。这一次,请注意transformer在读取所有数据之前就开始输出特性,因此它必须在内存中存储更少的数据。每次单击“继续到下一个断点”都会输出一个新特性并读取下一组特性。
如果您愿意,可以在阅读器之后添加一个采样器转换器,以便每隔10个特征(或更少)经过。这样你就可以少点击next按钮了。
教训:通过使用输入有序参数,StatisticsCalculator一次处理一组特性,甚至在读取下一组特性之前。但是,它要求源数据已经按正确的顺序存在。
注:如果你检查峰值内存使用,它会更少吗?从理论上说,是的。实际上没有,但这部分是因为我们只处理少量的数据,部分是因为我们使用了StatisticsCalculator:Summary端口——它允许我们使用断点,但出于某种原因会影响内存使用。
数据属性
这里使用的数据来源于由温哥华的城市不列颠哥伦比亚省。它包含在开放政府许可下的信息-温哥华。
©2020安全亚搏在线软件公司|法律