控制指令

本文主要介绍控制指令的用法和示例。

.let

定义命名数据集,作为后续SPL表达式的输入。SPL数据集详情请参见SPL数据集

语法

.let <dataset>=<spl-expr>

参数说明

参数

类型

必填

说明

dataset

String

数据集名称,包含字母、数字和下划线,并且以字母开头,区分大小写。

spl-expr

SPLExp

生成数据集的SPL表达式。

示例

将访问日志基于状态码进行过滤和分类处理,然后将其输出。

  • SPL语句

    -- SPL处理结果定义为命名数据集src,作为后续SPL表达式的输入
    .let src = * 
    | where status=cast(status as BIGINT);
    
    -- 以命名数据集src作为输入,筛选status字段为5xx的数据,定义数据集err,不输出
    .let err = $src
    | where status >= 500
    | extend msg='ERR';
    
    -- 以命名数据集src作为输入,筛选status字段为2xx的数据,定义数据集ok,不输出
    .let ok = $src
    | where status >= 200 and status < 300
    | extend msg='OK';
    
    -- 输出命名数据集errok
    $err;
    $ok;
  • 输入数据

    # 条目1
    status: '200'
    body: 'this is a test'
    
    # 条目2
    status: '500'
    body: 'internal error'
    
    # 条目3
    status: '404'
    body: 'not found'
  • 输出结果

    # 条目1: 数据集为err
    status: '500'
    body: 'internal error'
    msg: 'ERR'
    
    # 条目2: 数据集为ok
    status: '200'
    body: 'this is a test'
    msg: 'OK'