FME如何处理功能

默认情况下,FME处理在个人基础上的功能;即,每个特征是在到下一个被传递之前每个变压器内分别进行处理。这是因为大多数变压器上工作基于特征的重组,其中一个功能的处理不影响下一个。长度测量是这样的一个示例:测量线的长度不影响下一个的长度。

然而,一些变压器上工作基于组的重组其中一个功能的处理是否会影响下一个。变化检测就是这样一个例子:你无法侦测到的功能是否已经改变,除非你对所有其他功能进行比较。

基于组的处理的一个后果是,它会影响可用内存。如果该过程涉及数据集中的所有功能,所有功能必须在内存中举行,而处理的情况下,而不是基于特征的过程中,可以读出一个功能到内存中,并释放到移动到下一个。分拣机变压器是函数的处理组型的一个很好的例子。

第二个后果是,一些变压器会产生不同的结果取决于特性是如何被处理。例如,VariableSetter / VariableRetriever组合可能不会产生预期的结果,如果你不考虑如何功能正在处理(通过VariableSetter第一功能将直行通过VariableRetriever并检索其设置本身的价值 - 但如果你插入 a Sorter transformer between to hold up the features then the last feature will pass the VariableSetter before the first passes the VariableRetriever, thus retrieving a different value).

注意:的写入特征的数量实际上意味着被传递到写入器,这是不一定等于的可在FME数据查验或在目的地格式查看特征的数量特征的数量。笔者做什么用的特征(无论是分裂他们,甚至拒绝他们,等)依赖于个体的格式。有中继信息回FME的核心,它输出的统计信息没有可靠的方法。

体模式和特征处理

哪里批量模式被支撑,特征可能表现为输出块。虽然从一个输出端口特征顺序保持不变,当特征块通过一个变压器的多个端口(如输出通过失败测试仪)的端口,可以在依赖特征排序从加盟输出端口工作区出现意外的结果。在这些情况下,我们建议您做升级任何变压器他们的2019.1或更高版本,或修改您的工作空间,使他们不从加盟输出端口依靠特征排序。