配置表达式和筛选器
完成Topic源定义配置后,您可根据源定义的数据,配置字段和表达式,添加筛选器,解析生成多样化数据,用于后续分析或输出。
前提条件
已完成源定义数据配置。具体操作,请参见配置源定义。
配置表达式
从Topic数据解析工作台左侧的节点列表中,拖拽表达式节点到中间画布。
说明将节点拖拽到画布后,请先从上一个节点右侧锚点连线到当前节点的左侧锚点,再进行配置。
选中表达式节点,在右侧配置面板,显示原始字段列表。
(可选)根据实际场景需要,修改字段名称、数据类型、精度、小数位、或是否输出。
说明仅选中输出复选框的字段,才能用于后续节点配置。
单击新增字段,在弹出对话框中,根据页面提示,完成字段名称、数据类型、是否输出和表达式配置。
说明表达式支持的函数请参见下表,各类型函数之间支持嵌套使用。
表达式中的字段必须使用计算公式列的原始字段。
上报的JSON数据格式,可以是数组或者嵌套的JSON。表达式中支持使用JSONPath获取其中的属性值,例如
{a:{key1:v1, key2:v2}}
,可通过a.key2
获取到值v2
。使用变量时,需要注意单双引号区别:单引号表示常量,双引号或不加引号表示变量。如使用单引号'a.key2'
,值为a.key2
。有关JSONPath的更多信息,请参见LanguageManual UDF。
类型
说明
数学运算
加(+)、减(-)、乘(×)、除(÷)、取余(%)。
DATEADD:按照指定的单位和幅度修改日期值。
DATEDIFF:计算两个日期的差值并按照指定的单位表示。
FROM_UNIXTIME:将数字型的UNIX值转换为日期值。
GETDATE:获取当前系统时间。
ISDATE:判断一个日期字符串能否根据指定的格式串转换为一个日期值。
TO_DATE:将指定格式的字符串转换为日期值。
TO_CHAR:将日期按照指定格式转换为字符串。
UNIX_TIMESTAMP:将日期转换为整型的UNIX格式的日期值。
LAST_DAY:返回日期值所在月份的最后一天日期。
CURRENT_TIMESTAMP:返回当前TIMESTAMP类型的时间戳。
FROM_UTC_TIMESTAMP:将一个UTC时区的时间戳转换成一个指定时区的时间戳。
ABS:计算绝对值。
ASIN:计算反正弦值。
COS:计算余弦值。
COSH:计算双曲余弦值。
CEIL:计算向上取整值。
EXP:计算指数值。
FLOOR:计算向下取整值。
LOG:计算log对数值。
POW:计算幂值。
RAND:返回随机数。
ROUND:返回四舍五入到指定小数点位置的值。
SIN:计算正弦值。
SINH:计算双曲正弦值。
SQRT:计算平方根。
TAN:计算正切值。
TANH:计算双曲正切值。
TRUNC:返回截取到指定小数点位置的值。
HEX:返回整数或字符串的十六进制格式。
UNHEX:返回十六进制字符串所代表的字符串。
PI:返回π的值。
CHR:将指定ASCII码转换成字符。
CONCAT:将参数中的所有字符串连接在一起。
GET_JSON_OBJECT:获取JSON字符串中的指定字符串。
INSTR:计算子字符串在整个字符串中的位置。
BASE64_DECODE:对Base64加密数据,进行Base64解码。
LENGTH:返回字符串的长度。
LENGTHB:返回字符串以字节为单位的长度。
MD5:计算字符串的MD5值。
REGEXP_REPLACE:将字符串中指定位置的子字符串替换成新字符串后返回。
SPLIT_PART:依照分隔符拆分字符串,返回指定闭区间的子串。
SUBSTR:返回字符串从指定位置开始指定长度的子串。
TOLOWER:返回英文字符串对应的小写字符串。
TOUPPER:返回英文字符串对应的大写字符串。
TO_CHAR:将BOOLEAN、BIGINT、DECIMAL或DOUBLE类型转为对应的STRING类型表示。
TRIM:去除字符串的左右空格。
LTRIM:去除字符串的左空格。
RTRIM:去除字符串的有空格。
REVERSE:返回倒序字符串。
ASCII:返回字符串第一个字符的ASCII码。
LPAD:用b字符串将a字符串向左补足到len位。
RPAD:用b字符串将a字符串向右补足到len位。
REPLACE:将字符串中指定字符串替换为新字符串后返回。
URL_ENCODE:将输入字符串编码为
application/x-www-form-urlencoded MIME
格式。URL_DECODE:将输入字符串从
application/x-www-form-urlencoded MIME
格式转为正常字符串,是URL_ENCODE的逆过程。ENDSWITH:判断字符串1是否以字符串2结尾。
TO_BASE64:将二进制数据转换成对应base64编码的字符串输出。
CAST:将表达式的结果转换成目标类型。
COALESCE:返回列表中第一个非NULL的值。
DECODE:实现if-then-else分支选择的功能。
GREATEST:返回输入参数中最大的一个。
LEAST:返回输入参数中最小的一个。
UUID:返回一个随机ID。
CASE WHEN表达式:根据表达式的计算结果,灵活地返回不同的值。
说明该函数中CASE表达式不支持嵌套其他函数。
IF表达式:判断指定的条件是否为真。
SIZE:返回指定MAP中的K/V对数或ARRAY中的元素数目。
NVL:如果传入的value值为NULL,返回default_value的值,否则返回value值。
CRYPTO:对指定值进行加密。
DEVICENAME:返回当前设备名称。
TOPIC:返回Topic分段信息。
MESSAGEID:返回物联网平台生成的消息ID。
配置完成后,单击右上角保存。
如需使用表达式中新增字段,继续生产新数据,可继续参照上述步骤,配置多个表达式。
配置筛选器
从工作台左侧的节点列表中,拖拽筛选器节点到中间画布。
选中筛选器节点,在右侧配置面板,参照下表,添加筛选条件。
项目
说明
字段
选择要筛选的字段。
数据类型
选择字段后,自动匹配对应的数据类型。该项不可编辑。
操作符
可选操作符:≠(不等于)、=(等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、介于。
筛选值
输入要筛选的值。
(可选)单击添加且条件后,按照上一步的操作,可添加多个且条件。
配置完成后,单击确定。