计算方式选得太重,会让简单指标变得难维护;选得太轻,又会把复杂算法塞进难以审查的表达式。判断的关键是:计算发生在哪个粒度、谁需要复用、是否依赖外部引擎。
| 方式 | 适合的问题 | 典型边界 |
|---|---|---|
| 计算列 | 为每条记录生成稳定字段 | 适合逐行逻辑,不适合复杂外部算法 |
| 图表表达式 | 在当前图表按视图计算指标 | 结果受图表轴、聚合和筛选影响 |
| 表达式函数 | 把 TERR 逻辑包装成可在表达式中调用的函数 | 仅限已安装客户端创建,复用范围受分析限制 |
| 数据函数 | 调用 Python、R、TERR 等外部计算并返回结果 | 需要引擎、参数映射和运行环境治理 |
从最简单的方式开始
“订单金额减折扣”“日期差”“标准化编码”等稳定逐行逻辑,通常应是计算列;“当前筛选范围的平均值、同比或占比”等与图表上下文相关的指标,可优先使用图表表达式。不要为了看起来高级而把它们全部改成数据函数。
表达式函数适合什么?
官方说明表达式函数基于 TERR 脚本,可像普通函数一样在 Spotfire 表达式语言中调用。它可区分列函数和聚合函数,并需保证输出行数或输出类型与选择一致。适合经过验证、希望在同一分析中多处调用的计算逻辑。
什么时候升级到数据函数?
只有当需要外部算法、复杂统计、模型调用或生成新的结果表时,才考虑数据函数。此时要额外承担运行引擎、权限、输入输出映射、性能和版本管理成本。
结论
把逻辑放在最接近其业务粒度、且最容易维护的位置:简单行级计算用列,视图指标用表达式,受控高级计算才用函数。这样才能让指标既可解释又可持续维护。
Spotfire 报告交付与高级计算教程
官方参考
本文计划于 2026 年 10 月 13 日 发布;涉及软件版本、许可、服务器配置和数据权限时,请以当前产品文档与实际部署环境为准。