全部产品
Search
文档中心

云监控:extend(字段扩展)

更新时间:Apr 30, 2026

extend 节点基于表达式计算新列或覆盖已有列,适用于正则提取、类型转换、字段拼接和数据清洗等场景。

功能说明

extend 节点对每一行数据计算表达式,将结果作为新列追加或覆盖同名已有列。支持所有内建 SQL 函数,包括字符串函数、数学函数、正则函数和日期函数等。

每条记录独立计算,不改变行数。

  • 正则提取:从原始文本中提取特定内容,例如用户提问部分。

  • 类型转换:将字符串转为数值等。

  • 拼接计算:组合多个字段生成新的派生字段。

  • 数据清洗:去除空白字符、统一格式等。

节点配置

extend 节点的基本 JSON 配置结构如下:

{
  "id": "node_1",
  "type": "extend",
  "parameters": {
    "<字段名>": "<表达式>",
    "<字段名>": "<表达式>"
  }
}

参数说明

参数

类型

必填

默认值

说明

<字段名>

String

-

键为目标列名,值为计算表达式。至少包含一组键值对。列名已存在则覆盖,不存在则新增。

说明

支持的函数:所有 SQL 内建函数均可使用,包括但不限于:

  • 字符串函数:concatsubstrregexp_extractreplacetrimlowerupper

  • 数学函数:absceilfloorround

  • 类型转换:casttry_cast

  • 条件函数:ifcase whencoalescenullif

输入与输出

输入要求

  • 上游节点输出的任意列数据。

  • 表达式中引用的字段必须存在于输入数据中。

输出列

列名

类型

来源

说明

全部原始输入列

-

透传

保留全部上游列

parameters 中的每个键

由表达式决定

新增/覆盖

同名列被覆盖,新名称列被追加

行数变化

输出行数等于输入行数(M = N),每行独立计算。

使用示例

示例 1:正则提取

{
  "id": "n2",
  "type": "extend",
  "parameters": {
    "question": "regexp_extract(question, '用户提问:(.*)', 1)"
  }
}

question 字段中提取"用户提问:"后面的内容,覆盖原 question 列。

示例 2:新增派生列

{
  "id": "n2",
  "type": "extend",
  "parameters": {
    "summary": "concat(question, ' - ', output)",
    "q_len": "length(question)"
  }
}

新增 summaryq_len 两个派生列。summary 拼接 questionoutput 字段,q_len 计算 question 字段的长度。

示例 3:管道组合

以下示例展示 project(字段选取)extendwhere(筛选过滤)的组合模式,完成映射、转换、过滤的完整流程。

{
  "nodes": [
    {
      "id": "n1", "type": "project",
      "parameters": { "question": "a", "input": "b", "output": "c" }
    },
    {
      "id": "n2", "type": "extend",
      "parameters": { "question": "regexp_extract(question, '用户提问:(.*)', 1)" }
    },
    {
      "id": "n3", "type": "where",
      "parameters": { "filter": "length(question) > 10" }
    }
  ]
}

常见用法与异常处理

常见用法

  • 适用于字段派生计算:正则提取、字符串处理、类型转换、JSON 字段提取等。

  • 列名与已有列同名时覆盖原列,可利用此特性做原地转换(如清洗、格式化)。

  • 常与where(筛选过滤) 搭配:先用 extend 计算派生列,再用 where 基于派生列过滤。

  • 表达式支持所有 SQL 标量函数,例如 regexp_extractlengthjson_extract 等。

  • 一个 extend 节点可同时定义多个派生列,无需拆分为多个节点。

  • LLM 输出的 JSON 结果可通过 extend + json_extract 提取具体字段。

异常处理

场景

行为

parameters 为空

校验失败,至少需要一组表达式。

表达式中引用的字段不存在

运行时报错。

表达式语法错误

运行时报错,提示表达式解析失败。

列名与已有列冲突

覆盖已有列(设计意图,用于原地转换)。