版本口径:v2.0
状态:窄合同可用
实现范围:Java compiler / validator
受治理表达式是 v2.0 中 relation result-stage 的小公式能力。它解决的是“上一阶段已经得到一组指标 alias,下一步要计算比率、差额、偏差、标签或分桶”的问题。
它不是任意表达式语言,也不是让 LLM 写 SQL 片段。
| 表达式 | 用途 | 边界 |
|---|---|---|
| metric ratio | metricA / metricB 类占比、均值或转化率 |
引用 signed aliases |
| metric difference | metricA - metricB 类差额 |
引用 signed aliases |
| metric delta ratio | (metricA - metricB) / metricB 类差异率、偏差率 |
基准指标必须明确 |
| absolute metric delta ratio | abs(metricA - metricB) / metricB 类绝对偏差率 |
只表达显式绝对值语义 |
| single-threshold label | 单阈值 CASE 标签 | 不开放任意 CASE |
| ordered numeric bucket | 单数值 alias 的显式有序分桶 | label postSlice 只允许等值类操作 |
| same-stage alias DAG | 同一 derive stage 内 signed alias 依赖自动分层 | 只能是无环 DAG |
| signed ranking | 累计贡献等 result-stage 排名合同中的 rank() |
不签其他 ranking function |
表达式只能引用受治理 alias:
表达式不能引用:
ordered numeric bucket 只签收以下形态:
=、!=、<>。不支持多字段 bucket、嵌套 CASE、动态 label 或范围型 label 过滤。
result-stage ranking 当前只签收 rank() 相关窄合同:
rank_function=rank。dense_rank()、row_number()、percent_rank()、cume_dist()、ntile() 不属于 v2.0 signed ranking。
以下请求应拒绝:
业务分析需要小公式,但自由表达式会迅速破坏语义层边界。v2.0 选择 signed formula subset,是为了让常见指标计算可用,同时让 validator 能稳定判断: