SPL指令与函数
本文介绍SPL指令的详细信息。
参数类型说明
SPL指令中的参数类型说明如下表所示。
参数类型 | 说明 |
Bool | 布尔类型参数。使用SPL时,该参数为开关参数。 |
Char | ASCII字符类型参数,需使用单引号('')包裹,例如 |
Integer | 整数类型参数。 |
String | 字符串类型参数,需使用单引号('')包裹,例如 |
RegExp | RE2正则表达式类型参数,需使用单引号('')包裹,例如 语法定义,请参见Syntax。 |
JSONPath | JSON路径类型参数,需使用单引号('')包裹,例如 语法定义,请参见JsonPath。 |
Field | 字段名类型参数,例如 如果字段名中包含字母、数字、下划线以外的特殊字符,需使用双引号("")包裹,例如 说明 关于字段名称大小写敏感详情,请参见通用参考。 |
FieldPattern | 字段名和通配符组合或者字段名类型参数。支持通配符号*,表示匹配0个或多个任意字符。需使用双引号("")包裹,例如 说明 关于字段名称大小写敏感详情,请参见通用参考。 |
SPLExp | SPL表达式类型参数。 |
SQLExp | SQL表达式类型参数。 |
SPL指令列表
指令类别 | 指令名称 | 说明 | 数据加工 | 写入处理器 | 消费处理器 | 扫描模式(SCAN) | Logtail采集 |
控制指令 | 定义命名数据集,SPL数据集详情请参见通用参考。 | √ | × | × | √ | × | |
字段操作指令 | 保留与给定模式相匹配的字段、同时可重命名指定字段。指令执行过程中,先完成所有字段保留表达式的执行,再执行重命名表达式。 | √ | √ | √ | √ | √ | |
移除与给定模式相匹配的字段,原样保留其他所有字段。 | √ | √ | √ | √ | √ | ||
重命名指定字段,并保留其他所有字段原样。 | √ | √ | √ | √ | √ | ||
展开指定字段的第一层JSON对象,生成多条结果。 | √ | × | √ | × | × | ||
结构化数据SQL计算指令 | 通过SQL表达式计算结果产生新字段。支持的SQL函数列表,请参见SPL支持的SQL函数列表。 | √ | √ | √ | √ | √ | |
根据SQL表达式过滤数据,保留满足SQL表达式的数据条目。where指令支持的SQL函数列表,请参见SPL支持的SQL函数列表。 | √ | √ | √ | √ | √ | ||
弱结构化数据提取指令 | 提取指定字段中的正则表达式分组匹配信息。 | √ | √ | √ | √ | √ | |
提取指定字段中的CSV格式的信息。 | √ | √ | √ | √ | √ | ||
提取指定字段中的第一层JSON信息。 | √ | √ | √ | √ | √ | ||
提取指定字段中的键值对信息。 | √ | √ | √ | √ | √ | ||
数据加工(新版)指令 | 将日志字段进行打包,以JSON序列化输出到新字段,适用于需要结构化传输的场景(如API请求体构建)。 | √ | × | √ | √ | × | |
将日志格式转化为时序存储的格式。 | √ | × | × | × | × | ||
对已有时序数据进一步加工(如添加/修改/删除标签)。 | √ | × | × | × | × | ||
聚合指令 | 用于统计分析日志的指令,类似 SQL 中的聚合函数(如 | × | × | × | √ | × | |
对查询结果进行排序,支持对字段值或统计结果进行升序( | × | × | × | √ | × | ||
用于限制查询结果返回的日志行数,是控制数据量的核心指令之一。通过 | × | × | × | √ | × |
函数概览
SPL指令支持使用大多数SQL函数,但具体函数的可用性及适用场景需参考相应的函数文档。
分类 | 说明 | 常用函数 |
对目标数据集进行汇总计算,生成单一统计结果。 | ||
处理文本数据,包括查找、替换、截取、拼接、格式化等。 | ||
对日志中的日期和时间进行格式转换,分组聚合等处理。 | ||
处理 JSON 对象,包括提取、转换和统计。 | ||
模式匹配与文本处理。 | ||
计算时间序列数据的相对变化。 | ||
对数组进行增删改查、遍历和转换。 | ||
操作键值对。 | ||
数值计算、取整、随机数、三角函数等。 | ||
数据分布分析与数值计算。 | ||
处理数据类型间的转换。 | ||
基于数据窗口的聚合或排序。 | ||
处理 IP 地址的解析与计算。 | ||
解析 URL 结构。 | ||
基于数据预测或填充缺失值。 | ||
处理二进制类型的数据。 | ||
直接操作二进制位。 | ||
处理空间几何体。 | ||
地理位置分析与地图计算。 | ||
颜色表示与转换。 | ||
对大数据集进行统计处理,牺牲精度以节省内存。 | ||
分析中国内地地域电话号码的归属地、运营商等信息。 | ||
判断参数的大小关系,适用于任意可比较的数据类型(double、bigint、varchar、timestamp和date)。 | ||
组合多个布尔条件,控制逻辑流程。 | ||
换算数据量或时间间隔的单位。 | ||
分析用户行为、APP流量、产品目标转化等数据。 | ||
在SQL分析语句和SPL语句中定义Lambda表达式,并将该表达式传递给指定函数,丰富函数的表达。 | ||
基于条件分支返回不同值。 |