节点缓存
为优化流运行,可以在任何非终端节点上建立缓存。如果已在节点上建立了缓存,则在下一次运行数据流时流过节点的数据会充满缓存。从这时起,就会从缓存(存储在磁盘的临时目录中)而不是从数据源中读取数据了。
对于诸如排序、合并或汇总这样比较耗时的操作,缓存是最有用的。例如,假设已设置可从数据库中读取销售数据的源节点,和可按区域汇总销售数据的“汇总”节点。可以在“汇总”节点上建立缓存而不是在源节点上建立缓存,因为希望缓存存储的是已汇总的数据而不是整个数据集 。
注: 源节点位置的缓存仅用于存储读入 IBM® SPSS® Modeler 的原始数据复本,在大多数情况下,它不会带来性能方面的提升。
对于已启用缓存的节点,会在右上角显示一个小的文档图标。当节点上的数据被缓存时,文档图标将变绿。
启用缓存
- 在流工作区中右键单击节点,然后在菜单中单击高速缓存。
- 在缓存子菜单中,单击启用。
- 可以通过右键单击节点,然后在缓存子菜单中单击禁用来关闭缓存。
数据库中的缓存节点
对于在数据库中运行的流,可于中游将数据缓存到数据库的临时表中而不是文件系统中。如果与 SQL 优化相组合,则此操作将使性能得到显著提高。例如,可以对合并多个表以创建数据挖掘视图的流的输出进行缓存并在需要时重新使用。通过为所有下游节点自动生成 SQL,性能可得到进一步的提高。
为利用数据库缓存,必须同时启用 SQL 优化和数据库缓存。注意,服务器上的优化设置将覆盖客户端上的优化设置。有关更多信息,请参阅设置流的优化选项主题。
如果已启用数据库缓存,则只需用右键单击任意非终端节点就可以缓存该点上的数据,并且在下次运行流时,可以直接在数据库中自动创建缓存。如果未启用数据库缓存或 SQL 优化,则会转而将缓存写入文件系统中。
注: 下列数据库支持用于缓存的临时表:Db2、Oracle、SQL Server 和 Teradata。其他数据库(例如 Netezza)将使用标准表进行数据库缓存。可以针对特定数据库定制 SQL 代码 - 请与服务人员联系以获取帮助。