指标定义

系统内,指标配置有三种常用方式:

配置方式说明适用场景
自然语言定义通过描述业务逻辑,系统自动生成指标配置快速配置、简单指标
SQL 定义直接编写 SQL 语句定义指标逻辑熟悉 SQL 的用户、复杂计算逻辑
JS 代码定义通过 JavaScript 代码定义复合指标跨表计算、多因子复合指标

进入 系统搭建 > 数据管理 > 指标配置,右上角有两个按钮:「通过提问添加」和「手动添加」。

自然语言定义

点击「通过提问添加」按钮,将业务逻辑通过自然语言描述出来,系统会根据描述自动生成对应的指标配置。

注意

配置指标所涉及的因子(字段)需要在系统中已存在,否则会报错。

示例:

指标自然语言描述说明
达成率销售额 / 目标金额要求销售额和目标金额字段在表结构中存在,允许跨表
成交率成交订单数 / 订单总数自动识别并转换为两个计算因子:
• 成交的订单数:SUM(CASE WHEN status = '成交' THEN 1 ELSE 0 END)
• 订单总数:COUNT(1)

SQL 定义

  1. 点击「手动添加」按钮
  2. 勾选「SQL 定义」选项
  3. 选择对应的 Schema
  4. 输入指标的 SQL 语句(仅需描述计算逻辑)

系统支持导入模板:点击「Snippets」按钮查看系统内置模板,选择合适的模板后点击「导入」,再根据实际业务需求调整即可。

示例:

-- 均价 = 总金额 / 总销量
SUM(amount) / SUM(qty)

-- 成交率 = 成交数 / 订单总数
SUM(CASE WHEN status = '成交' THEN 1 ELSE 0 END) / COUNT(1)

JS 代码定义(复合指标)

对于复合指标,选择「手动配置」方式。通过自然语言描述的指标,在此处会有对应的 JS 表达方式。同样支持通过导入模板来快速配置。

计算因子配置

模板示例:

(predItem, { schema, logicform, helperFunctions }) => {
  const preds = [];

  preds.push({
    ...predItem,
    pred: "金额",
    operator: "$sum",
    name: "总金额",
    query: {
      "订单状态": { "$ne": "已取消" }
    },
    schema: "dwd_sales_detail_d370d1",
  });

  preds.push({
    ...predItem,
    pred: "目标金额",
    operator: "$sum",
    name: "总目标金额",
    query: {},
    schema: "dwd_shop_target_odo5tj",
  });

  return preds;
};

模板逻辑说明:

该模板构建了两个计算因子:

因子名称字段运算符数据表筛选条件
总金额金额$sumdwd_sales_detail_d370d1订单状态 ≠ 已取消
总目标金额目标金额$sumdwd_shop_target_odo5tj

配置字段说明:

字段说明
pred指定参与计算的字段名称
operator指定聚合运算符(如 $sum$avg$count 等)
name为该计算因子命名,后续在子指标计算中引用
schema指定数据来源表
query设置筛选条件(可选)

如需更多计算因子,继续在 preds 数组中添加配置即可。

子指标计算代码

子指标计算代码用于将上述定义的计算因子进行运算,通过因子的 name 属性引用对应的值。

示例:

// 计算达成率:总金额 / 总目标金额
(m) => (m['总金额'] || 0) / (m['总目标金额'] || 0)

// 计算均价:总金额 / 总销量
(m) => (m['总金额'] || 0) / (m['总销量'] || 0)

// 多因子复合运算
(m) => (m['因子1'] || 0) / ((m['因子2'] || 0) * (m['因子3'] || 0))
提示

|| 0 用于处理空值情况,避免计算错误。