云日志服务 LTS-事件操作函数:e_split

时间:2024-11-02 18:44:20

e_split

基于日志字段的值分裂出多条日志,并且支持通过JMES提取字段后再进行分裂。

  • 函数格式
    e_split(字段名, sep=',', quote='"', lstrip=true, jmes=None, output=None)

    分裂规则:

    1. 如果配置了jmes参数,则将日志字段的值转化为JSON列表,并使用JMES提取值作为下一步的值。如果没有配置jmes参数,则将字段的值直接作为下一步的值。
    2. 如果上一步的值是一个列表或JSON列表格式的字符串,则按照此列表分裂并结束处理。否则使用sep、quote或lstrip将上一步的值进行 CS V解析,根据解析后的多个值进行分裂并结束处理。
  • 参数说明

    参数名称

    参数类型

    是否必填

    说明

    字段名

    String

    需要分裂的字段名。

    sep

    String

    用于分隔多个值的分隔符。

    quote

    String

    用于引用多个值的配对类字符的引用符。

    lstrip

    String

    是否将值左边的空格去掉,默认为true。

    jmes

    String

    将字段值转化为JSON对象,并使用JMES提取特定值,再进行分裂操作。

    output

    String

    设置一个新的字段名,默认覆盖旧字段名。

  • 返回结果

    返回日志列表,列表中字段的值都是源列表中的值。

  • 函数示例
    • 测试数据
      {
      "__topic__": "",
      "age": 18,
      "content": 123,
      "name": "maki"
      }
    • 加工规则
      e_set("__topic__", "V_SENT,V_RECV,A_SENT,A_RECV")
      e_split("__topic__")
    • 加工结果
      [
      {
          "__topic__": "V_SENT",
          "name": "maki",
          "age": 18,
          "content": 123
      },
      {
          "__topic__": "V_RECV",
          "name": "maki",
          "age": 18,
          "content": 123
      },
      {
          "__topic__": "A_SENT",
          "name": "maki",
          "age": 18,
          "content": 123
      },
      {
          "__topic__": "A_RECV",
          "name": "maki",
          "age": 18,
          "content": 123
      }
      ]
  • 更多参考

    支持和其他函数组合使用。

support.huaweicloud.com/usermanual-lts/lts_07_0164.html