本文主要介绍结构化数据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
该文章对您有帮助吗?