结构化数据SQL计算指令

更新时间:
复制为 MD 格式

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

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

正则式函数

模式匹配与文本处理。

同比和环比函数

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

数组函数和运算符

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

Map映射函数和运算符

操作键值对。

数学计算函数

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

数学统计函数

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

类型转换函数

处理数据类型间的转换。

窗口函数

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

IP函数

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

URL函数

解析 URL 结构。

估算函数

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

二进制函数

处理二进制类型的数据。

位运算函数

直接操作二进制位。

空间几何函数

处理空间几何体。

地理函数

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

颜色函数

颜色表示与转换。

HyperLogLog函数

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

电话号码函数

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

比较运算符

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

逻辑运算符

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

单位换算函数

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

窗口漏斗函数

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

Lambda表达式

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

条件表达式

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