本文主要介绍结构化数据SQL计算指令的用法和示例。
extend
通过SQL表达式计算结果产生新字段。支持的SQL函数列表,请参见SPL支持的SQL函数列表。
语法
| extend <output>=<sql-expr>, ...参数说明
参数 | 类型 | 必填 | 说明 |
output | Field | 是 | 添加的目标字段名称。不支持多个表达式结果输出至相同的目标字段。 重要 如果目标字段与输入数据中字段重名,则直接使用新的类型以及值将其覆盖。 |
sql-expr | SQLExpr | 是 | 数据处理表达式。 重要 关于null值处理,请参见SPL表达式null值处理。 |
示例
示例1:使用计算表达式。
* | extend Duration = EndTime - StartTime示例2:使用正则表达式。
* | extend server_protocol_version=regexp_extract(server_protocol, '\d+')示例3:提取JSON路径内容,并转换部分字段的数据类型。
SPL语句
* | extend a=json_extract(content, '$.body.a'), b=json_extract(content, '$.body.b') | extend b=cast(b as BIGINT)输入数据
content: '{"body": {"a": 1, "b": 2}}'输出结果
content: '{"body": {"a": 1, "b": 2}}' a: '1' b: 2
where
根据SQL表达式过滤数据,保留满足SQL表达式的数据条目。where指令支持的SQL函数列表,参见SPL支持的SQL函数列表。
语法
| where <sql-expr>参数说明
参数 | 类型 | 必填 | 说明 |
sql-expr | SQLExp | 是 | SQL表达式,保留满足此表达式的数据条目。 重要 SQL表达式中null值处理,请参见SPL表达式null值处理。 |
示例
示例1:根据字段内容过滤数据条目。
* | where userId='123'示例2:使用匹配字段名的正则表达式过滤数据条目。
* | where regexp_like(server_protocol, '\d+')示例3:转换数据类型后,匹配所有服务端错误数据。
* | where cast(status as BIGINT) >= 500
SPL支持的SQL函数列表
分类 | 说明 | 常用函数 |
对目标数据集进行汇总计算,生成单一统计结果。 | ||
处理文本数据,包括查找、替换、截取、拼接、格式化等。 | ||
对日志中的日期和时间进行格式转换,分组聚合等处理。 | ||
处理 JSON 对象,包括提取、转换和统计。 | ||
模式匹配与文本处理。 | ||
计算时间序列数据的相对变化。 | ||
对数组进行增删改查、遍历和转换。 | ||
操作键值对。 | ||
数值计算、取整、随机数、三角函数等。 | ||
数据分布分析与数值计算。 | ||
处理数据类型间的转换。 | ||
基于数据窗口的聚合或排序。 | ||
处理 IP 地址的解析与计算。 | ||
解析 URL 结构。 | ||
基于数据预测或填充缺失值。 | ||
处理二进制类型的数据。 | ||
直接操作二进制位。 | ||
处理空间几何体。 | ||
地理位置分析与地图计算。 | ||
颜色表示与转换。 | ||
对大数据集进行统计处理,牺牲精度以节省内存。 | ||
分析中国内地地域电话号码的归属地、运营商等信息。 | ||
判断参数的大小关系,适用于任意可比较的数据类型(double、bigint、varchar、timestamp和date)。 | ||
组合多个布尔条件,控制逻辑流程。 | ||
换算数据量或时间间隔的单位。 | ||
分析用户行为、APP流量、产品目标转化等数据。 | ||
在SQL分析语句和SPL语句中定义Lambda表达式,并将该表达式传递给指定函数,丰富函数的表达。 | ||
基于条件分支返回不同值。 |