Spotfire中高效计算并去除任务与故障时间线重叠的最优方案
无脚本实现Spotfire任务与故障时间线重叠时长计算方案
前置数据准备
确保任务时间线表与故障时间线表通过机器唯一标识字段(如MachineID)完成关联,同时保留任务的唯一标识(如TaskID),关联时仅匹配同一机器下的任务与故障数据。
分步创建计算列
所有计算列使用Spotfire内置函数,无需脚本支持,性能远优于TERR脚本:
计算重叠开始时间
创建计算列Overlap Start,公式:Max([Task Start], [Issue Start])逻辑:取任务开始时间与故障开始时间的较晚值,作为重叠时间段的起始点。
计算重叠结束时间
创建计算列Overlap Stop,公式:Min([Task Stop], [Issue Stop])逻辑:取任务结束时间与故障结束时间的较早值,作为重叠时间段的结束点。
计算重叠时长(分钟)
创建计算列Overlap,公式:If([Overlap Stop] > [Overlap Start], DateDiff("minute", [Overlap Start], [Overlap Stop]), 0)逻辑:若重叠结束时间晚于开始时间,计算两者的分钟差值;无重叠时返回0,与示例输出逻辑完全匹配。
性能优化说明
Spotfire内置计算列基于底层优化引擎执行,处理10万级数据的耗时会大幅低于TERR脚本,且不会给服务器带来额外的脚本执行压力。若需按机器+任务维度汇总总重叠时长,可直接在可视化表中对Overlap字段按MachineID和TaskID做求和聚合。
内容的提问来源于stack exchange,提问作者Philip
相关产品推荐
相关产品推荐

