结构化数据SQL计算指令

本文主要介绍结构化数据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