表达式
表达式是系统中用于数据复杂处理和单位转换的重要功能,支持两种主要类型:公式引用表达式和字符串构建表达式,主要使用在元素数据引用属性、面板和分析中。本文档将详细介绍这两种表达式的使用方法。
概述
表达式用于在数据处理过程中进行以下操作:
- 数据计算和转换
- 条件判断和逻辑运算
- 字符串处理
- 计量单位自动推导和转换
- 时间序列数据处理
系统提供了两种不同的表达式类型,以满足不同的处理需求。
公式引用表达式
公式引用表达式用于进行数值计算,支持四则运算和非聚合函数,具有计量单位自动推导和转换能力。
基本特性
- 数值计算:支持算术运算
- 函数支持:内置多种数学、逻辑、条件、时间、字符串、类型转换等函数
- 单位推导:自动推导计算结果的计量单位
- 单位转换:自动进行计量单位转换
- 数据引用:可引用元素的属性、替换参数等数据
支持的运算符
| 运算符类型 | 运算符 | 说明 |
|---|---|---|
| 算术运算 | + - * / % | 加、减、乘、除、取模 |
| 比较运算 | = == <> != > < >= <= | 等于、不等于、大于、小于等 |
| 位运算 | | & | 位或、位与 |
| 括号 | () | 改变运算优先级 |
支持的函数类型
公式引用表达式内置支持以下类型的函数:
- 数学函数:
ABS、SQRT、POW、CEIL、FLOOR、ROUND、SIN、COS、LOG等 - 字符串函数:
LENGTH、UPPER、LOWER、CONCAT、SUBSTR、TRIM等 - 转换函数:
CAST、TO_CHAR、TO_UNIXTIMESTAMP、TO_ISO8601等 - 时间和日期函数:
NOW、TODAY、TIMETRUNCATE、TIMEDIFF、YEAR、MONTH等 - 聚合函数:
AVG、COUNT、SUM、SPREAD等 - 选择函数:
LAST、FIRST、MAX、MIN等 - 时序数据特有函数:
CSUM、DIFF、IRATE、INTERP等
提示
完整的函数列表和用法请参考 TDengine 函数文档。
计量单位自动推导和转换
公式引用表达式的核心特性是计量单位自动推导和转换,系统能够根据运算自动推导结果的计量单位,并在必要时进行单位转换。
提示
详细的计量单位推导请参考 计量单位。
字符串构建表达式
字符串构建表达式用于文本处理和转换,不会输出单位,适用于需要生成文本结果的场景。
基本特性
- 文本处理:支持字符串操作
- 无单位输出:结果为纯文本,不涉及单位推导
- 灵活的数据拼接:可以组合多种数据源生成文本
- 条件判断:支持条件逻辑生成不同文本
支持的运算符和函数
- 字符串函数:
CONCAT、CONCAT_WS、UPPER、LOWER、SUBSTR、REPLACE、TRIM等 - 条件函数:
IF、CASE WHEN - 转换函数:
TO_CHAR、CAST、FORMAT、TO_ISO8601等 - 数学函数:
ABS、SQRT、POW、CEIL、FLOOR、ROUND、SIN、COS、LOG等
表达式对话框操作
系统提供了可视化的表达式编辑对话框,帮助用户编写和验证表达式。
打开表达式对话框
表达式对话框可以在以下场景中打开:
- 元素公式或者字符串构建属性配置:在元素属性编辑页面中,选择"公式"或"字符串构建"的数据引用类型,然后点击"数据引用设置"输入框。
- 面板配置:在面板的指标和维度表达式配置中,点击表达式编辑框。
- 分析配置:在分析的事件开始和结束条件,预过滤和输出属性配置中,点击表达式编辑框。
表达式对话框说明
表达式对话框主要包含以下区域:
| 区域 | 说明 |
|---|---|
| 属性 | 显示当前上下文中可用的属性(如指标、标签、其他属性和替换参数等),可点击插入到表达式中 |
| 表达式编辑区 | 用于输入和编辑表达式内容,支持属性高亮显示和快捷提示插入 |
| 函数 | 显示可用的函数分类和函数名,可点击插入到表达式中 |
| 评估结果区 | 显示表达式评估的结果或错误信息,如果是公式引用表达式,显示推导出的计量单位 |
操作步骤
-
输入表达式
- 在表达式输入区直接输入表达式
- 或从属性列表中点击选择需要引用的属性
- 或从函数列表中点击选择需要使用的函数
-
插入属性
- 在属性列表中找到需要引用的指标、标签或替换参数
- 点击属性名称,系统会自动插入到表达式的光标位置
- 该属性会以高亮方式显示
-
插入函数
- 在函数列表中选择函数分类(如数学函数、时间函数等)
- 点击需要的函数名称,系统会自动插入函数到表达式的光标位置
-
评估表达式
- 点击对话框右上角的 "评估" 按钮
- 系统会计算表达式的结果并显示在评估结果区,如果是公式引用表达式,会显示推导出的计量单位
- 如果表达式有错误,会显示具体的错误信息
-
保存表达式
- 确认表达式正确无误后,点击 "保存" 按钮
- 表达式将被保存到相应的配置中
-
切换表达式类型
- 点击对话框右上角的 类型 图标可以切换表达式类型
- 如果当前是公式引用表达式,点击以后会切换为字符串构建表达式
- 如果当前是字符串构建表达式,点击以后会切换为公式引用表达式
自动设置计量单位
点击"评估"按钮后,系统会记住表达式结果的计量单位。如果当前属性还没有设置计量单位分类和默认计量单位,关闭表达式编辑对话框时,系统会自动将最后一次评估结果的计量单位设置为属性的默认计量单位,省去手动选择的麻烦。
常见错误和解决方案
| 错误类型 | 举例 | 错误信息 | 解决方案 |
|---|---|---|---|
| 单位转换不存在 | 电压 + 电流 | 操作符"+"不能应用于不同的计量单位分类 | 请修改表达式本身。 |
| 单位分类不存在 | 电压 * 电压 | 基于基本计量单位组合:质量^2 * 时间^-6 * 长度^4 * 电流^-2 的计量单位分类在系统中不存在,请联系管理员添加对应的计量单位分类。 | 请联系管理员添加对应的计量单位分类。 |








