快速参考
SPL 语法速查与 SQL 概念对照
快速参考
概念对照
| 数据库概念 | SPL 概念 | 说明 |
|---|---|---|
| SQL 查询 | SPL 搜索 | 检索事件,管道内过滤、转换、分组、统计 |
| 表 | 搜索结果 | 动态生成的行(事件)与列(字段) |
| 表名 | index | 索引名 |
| 行 | 事件 | 通常对应一条带时间戳的日志 |
| 列 | 字段 | 字段集随语句与解析规则变化 |
从 SQL 到 SPL
| 意图 | SQL(示意) | SPL(示意) |
|---|---|---|
| 全表扫描 | SELECT * FROM mytable | index="mytable" |
| 条件过滤 | WHERE col=5 | index="t" col=5 或 | where col=5 |
| 选列 | SELECT a, b | | fields a, b 或 | table a, b |
| 排序 | ORDER BY a DESC | | sort - a |
| 限制行数 | LIMIT 10 | | head 10 或 | limit 10 |
| 分组计数 | COUNT(*) GROUP BY user | | stats count() by user |
| 派生列 | lower(u) AS lu | | eval lu=lower(u) |
| 重命名 | AS | | rename old as new |
| 去重 | DISTINCT | | dedup field |
| 维表关联 | JOIN | | lookup dim.csv key OUTPUT name |
管道顺序(常用)
搜索条件操作符
| 操作符 | 含义 |
|---|---|
= / == | 等于 |
!= / <> | 不等于 |
< / <= / > / >= | 比较 |
like / not like | 模式匹配(% 多字符,_ 单字符) |
AND / OR | 与 / 或(AND 优先;可用括号) |
通配:* 零或多字符,? 单字符。
命令一览
| 命令 | 用途 |
|---|---|
where | 管道内条件过滤 |
fields / table | 保留或输出字段 |
rename | 重命名 |
sort | 排序 |
eval | 派生字段 |
stats | 聚合 |
dedup | 去重 |
head / limit | 截取行 |
top / rare | 高频 / 低频值 |
lookup / inputlookup / outputlookup | 查找表 |
join / append / appendcols | 合并结果 |
iplocation | IP 地理 enrichment |
rex / parse / spath | 提取字段 |
makemv / mvexpand / mvcombine | 多值 |
fillnull / filldown / fillup | 空值处理 |
times | 语句内时间范围 |