You need to enable JavaScript to run this app.
导航

字段处理函数

最近更新时间2023.11.13 16:31:35

首次发布时间2023.02.16 18:06:17

本文档介绍字段处理函数的语法与格式、相关的场景示例等。

v 函数

提取日志中指定字段名的值。参数支持同时传入多个字段,返回第一个存在的字段,如果参数中所有字段均不存在,则返回 default 值。

函数语法/格式

v(field, ..., default=None)

参数说明如下:

参数

参数类型

是否必选

默认值

取值范围

说明

field

String

/

/

提取值的字段名。

defalut

任意

None

/

所有字段均不存在时,返回的 default 值。

函数示例

  • 场景:从日志中提取多个字段,将提取到的第一个字段值设置到新的字段中。

  • 加工规则:

    f_set("first_value", v("content-1", "content-2", default="hello world"))
    
  • 日志样例:

    [
        {
            "content-1":"hello"
        },
        {
            "content-2":"world"
        },
        {
            "content":"test content"
        }
    ]
    
  • 加工结果:

    [
        {
            "content-1":"hello",
            "first_value":"hello"
        },
        {
            "content-2":"world",
            "first_value":"world"
        },
        {
            "content":"test content",
            "first_value":"hello world"
        }
    ]
    

f_drop 函数

删除日志中指定字段名的字段,可同时指定多个字段,至少指定一个字段。

函数语法/格式

f_drop(field, ....)

参数说明如下:

参数

参数类型

是否必选

默认值

取值范围

说明

field

String

/

/

待删除的字段名。

函数示例

  • 场景:删除日志中的 content 字段。

  • 加工规则:

    f_drop("content")
    
  • 日志样例:

    {
        "content":"test value",
        "name":"Paul",
        "city":"chengdu"
    }
    
  • 加工结果:

    {
        "name":"Paul",
        "city":"chengdu"
    }
    

f_keep 函数

保留日志中指定字段名的字段,其余字段则删除,可同时指定多个字段,至少指定一个字段。

函数语法/格式

f_keep(field, ....)

参数说明如下:

参数

参数类型

是否必选

默认值

取值范围

说明

field

String

/

/

待保留的字段名。

函数示例

  • 场景:保留日志中的 namecity 字段,其余字段均删除。

  • 加工规则:

    f_keep("name", "city")
    
  • 日志样例:

    {
        "name":"Paul",
        "age":"20",
        "city":"chengdu",
        "content":"hello world"
    }
    
  • 加工结果:

    {
        "name":"Paul",
        "city":"chengdu"
    }
    

f_rename 函数

重命名指定的字段,参数中的字段和新字段名必须成对出现。

函数语法/格式

f_rename(key1, newkey1, key2, newkey2, ...)

说明

函数中 keynew key 必须成对出现,且至少存在一对。

参数说明如下:

参数

参数类型

是否必选

默认值

取值范围

说明

key

string

/

/

日志字段名,可以为正则表达式。当字段名完全满足条件时,重命名该字段。

newkey

string

/

/

新字段名称。

函数示例

  • 场景:将日志中的 content 字段重命名为 new-content 字段。

  • 加工规则:

    f_rename("content", "new-content")
    
  • 日志样例:

    {
        "content":"hello world",
        "city":"hangzhou"
    }
    
  • 加工结果:

    {
        "new-content":"hello world",
        "city":"hangzhou"
    }
    

f_set 函数

添加新字段或为现有字段设置新值,可同时设置多个字段,字段名和字段值必须成对出现。

函数语法/格式

f_set(key1, value1, key2, value2, mode="overwrite")

参数说明如下:

参数

参数类型

是否必选

默认值

取值范围

说明

key

String

/

/

字段名。

value

任意

/

/

字段值。

mode

String

overwrite

  • Overwrite
  • fill

当指定字段不存在时的处理逻辑。

  • overwrite: 覆盖写入。
  • fill: 当目标字段不存在时,设置目标字段。

函数示例

  • 场景:在日志中新增字段 user_type,值为 normal。

  • 加工规则:

    f_set("user_type", "normal")
    
  • 日志样例:

    {
        "name":"Elvin",
        "age":"22"
    }
    
  • 加工结果:

    {
        "name":"Elvin",
        "age":"22",
        "user_type":"normal"
    }