span8
span4
我使用的是64位的FME桌面(v2017.1.2.1),并尝试将一个大的CSV文件(大约1gb和6000万条记录)读入PostgreSQL数据库表,不涉及任何几何图形。我唯一使用的变压器是一个attributerenamer来绘制字段,还有两个expressionevaluator来计算公里/小时和米/秒的英里/小时(见下文)。
我的问题是,运行工作台消耗了VM上可用的8GB RAM的大部分,这似乎是由于在第一个转换器(attributerenamer)之前读取所有记录的CSV读取器造成的。我通宵运行工作台,它失败了,由于FME应用程序崩溃在约。处理了5200万条记录,我假设这是与内存相关的,因为日志的最后几行是:
| 1.0|STATRP|属性珐琅器(AttrSetFactory):加工59977315个功能中的52421236个
|17818.1| 2.8|STATRP|资源管理器:优化内存使用。请稍等…
|17818.1| 2.8|通知|资源管理:优化内存使用。请稍等…
警告:不是所有创建的fmes都在关机前被销毁。这可能会导致不稳定
| 0.0|警告|警告:并不是所有已注册的隐藏对象都在关机前被丢弃。这可能会导致不稳定
我的问题是,为什么FME要从文件中读取这么多内存?
我没有使用任何组级别的转换器,这些转换器通常需要将所有特性保存在内存中,所以可以从CSV中读取记录,按顺序进行处理和处理,占用的内存很少。
尽管文件很大,但我希望FME能更好地处理这个问题。
干杯
约翰
嗨@john_gis4busine谢谢你在这里出色的侦查工作。我想知道您的工作空间中是否可能有多个writer。如果PostgreSQL的作者不是第一个,那么我就会期待你看到的行为(是的,它确实让我哭了)。你能再确认一下,然后告诉我们吗?如果是第二个作者,那么请把它移到第一个,看看是否有任何变化。如果它已经是第一个写入器,请将工作区和日志文件发送到support@亚搏在线safe.com我们会深入挖掘。绝对不应该做你看到的事。
嗨@daleat亚搏在线safe&@Mark2At亚搏在线Safe。
谢谢你的快速回复。是的,PostgreSQL的作者是第二个作者(我有一个PostGIS的作者在同一个工作台)。当然,当我在编写器之间切换时,这些特性会在事务运行时写入PostgreSQL编写器。然而,PostGIS的作者会遇到同样的问题,直到最后才会写出特性。
我将发送一个测试工作台和来自两次测试运行的日志,编写人员交换。
我认为测试的一个好方法是在编写器之前添加一个断点,然后以断点/调试模式运行工作区。然后您可以确定地在工作空间中一次移动一个特性,并查看发生了什么。如果将每个事务的特性设置为1或2,则更容易看到发生了什么。最终你可能是对的,但遗憾的是我不能测试它,因为我今天不在办公室。但外管局肯定会有其他人跟进。亚搏在线
©2019安全亚搏在线软件公司法律