SPL指令与函数

更新时间: 2025-08-14 16:28:54

本文介绍SPL指令的详细信息。

参数类型说明

SPL指令中的参数类型说明如下表所示。

参数类型

说明

Bool

布尔类型参数。使用SPL时,该参数为开关参数。

Char

ASCII字符类型参数,需使用单引号('')包裹,例如'a'表示字符a,'\t'表示制表符、'\11'表示序号为八进制数11对应的ASCII字符、'\x09'表示序号为十六进制数09对应的ASCII字符。

Integer

整数类型参数。

String

字符串类型参数,需使用单引号('')包裹,例如'this is a string'

RegExp

RE2正则表达式类型参数,需使用单引号('')包裹,例如'([\d.]+)'

语法定义,请参见Syntax

JSONPath

JSON路径类型参数,需使用单引号('')包裹,例如'$.body.values[0]'

语法定义,请参见JsonPath

Field

字段名类型参数,例如| project level, content

如果字段名中包含字母、数字、下划线以外的特殊字符,需使用双引号("")包裹,例如 | project "a:b:c"

说明

关于字段名称大小写敏感详情,请参见通用参考

FieldPattern

字段名和通配符组合或者字段名类型参数。支持通配符号*,表示匹配0个或多个任意字符。需使用双引号("")包裹,例如| project "__tag__:*"

说明

关于字段名称大小写敏感详情,请参见通用参考

SPLExp

SPL表达式类型参数。

SQLExp

SQL表达式类型参数。

SPL指令列表

指令类别

指令名称

说明

数据加工

写入处理器

消费处理器

扫描模式(SCAN)

Logtail采集

控制指令

.let

定义命名数据集,SPL数据集详情请参见通用参考

×

×

×

字段操作指令

project

保留与给定模式相匹配的字段、同时可重命名指定字段。指令执行过程中,先完成所有字段保留表达式的执行,再执行重命名表达式。

project-away

移除与给定模式相匹配的字段,原样保留其他所有字段。

project-rename

重命名指定字段,并保留其他所有字段原样。

expand-values

展开指定字段的第一层JSON对象,生成多条结果。

×

×

×

结构化数据SQL计算指令

extend

通过SQL表达式计算结果产生新字段。支持的SQL函数列表,请参见SPL支持的SQL函数列表

where

根据SQL表达式过滤数据,保留满足SQL表达式的数据条目。where指令支持的SQL函数列表,请参见SPL支持的SQL函数列表

弱结构化数据提取指令

parse-regexp

提取指定字段中的正则表达式分组匹配信息。

parse-csv

提取指定字段中的CSV格式的信息。

parse-json

提取指定字段中的第一层JSON信息。

parse-kv

提取指定字段中的键值对信息。

数据加工(新版)指令

pack-fields

将日志字段进行打包,以JSON序列化输出到新字段,适用于需要结构化传输的场景(如API请求体构建)。

×

×

log-to-metric

将日志格式转化为时序存储的格式。

×

×

×

×

metric-to-metric

对已有时序数据进一步加工(如添加/修改/删除标签)。

×

×

×

×

聚合指令

stats

用于统计分析日志的指令,类似 SQL 中的聚合函数(如 COUNTSUMAVG 等)。对日志数据中的特定字段进行统计、分组和聚合操作。

×

×

×

×

sort

对查询结果进行排序,支持对字段值或统计结果进行升序(asc)或降序(desc)排序。它是日志分析中快速定位关键数据、生成有序报表的重要工具。

×

×

×

×

limit

用于限制查询结果返回的日志行数,是控制数据量的核心指令之一。通过 limit 可有效防止查询结果过大导致的性能问题或资源浪费,适用于日志分析、实时监控等多种场景。

×

×

×

×

函数概览

SPL指令支持使用大多数SQL函数,但具体函数的可用性及适用场景需参考相应的函数文档。

分类

说明

常用函数

聚合函数

对目标数据集进行汇总计算,生成单一统计结果。

字符串函数

处理文本数据,包括查找、替换、截取、拼接、格式化等。

日期和时间函数

对日志中的日期和时间进行格式转换,分组聚合等处理。

JSON函数

处理 JSON 对象,包括提取、转换和统计。

正则式函数

模式匹配与文本处理。

同比和环比函数

计算时间序列数据的相对变化。

数组函数和运算符

对数组进行增删改查、遍历和转换。

Map映射函数和运算符

操作键值对。

数学计算函数

数值计算、取整、随机数、三角函数等。

数学统计函数

数据分布分析与数值计算。

类型转换函数

处理数据类型间的转换。

窗口函数

基于数据窗口的聚合或排序。

IP函数

处理 IP 地址的解析与计算。

URL函数

解析 URL 结构。

估算函数

基于数据预测或填充缺失值。

二进制函数

处理二进制类型的数据。

位运算函数

直接操作二进制位。

空间几何函数

处理空间几何体。

地理函数

地理位置分析与地图计算。

颜色函数

颜色表示与转换。

HyperLogLog函数

对大数据集进行统计处理,牺牲精度以节省内存。

电话号码函数

分析中国内地地域电话号码的归属地、运营商等信息。

比较运算符

判断参数的大小关系,适用于任意可比较的数据类型(double、bigint、varchar、timestamp和date)。

逻辑运算符

组合多个布尔条件,控制逻辑流程。

单位换算函数

换算数据量或时间间隔的单位。

窗口漏斗函数

分析用户行为、APP流量、产品目标转化等数据。

Lambda表达式

在SQL分析语句和SPL语句中定义Lambda表达式,并将该表达式传递给指定函数,丰富函数的表达。

条件表达式

基于条件分支返回不同值。

上一篇: SPL基础语法 下一篇: 控制指令
阿里云首页 日志服务 相关技术圈