全部產品
Search
文件中心

Simple Log Service:欄位操作指令

更新時間:Jan 10, 2026

本文主要介紹欄位操作指令的用法和樣本。

project

保留與給定模式相匹配的欄位、同時可重新命名指定欄位。指令執行過程中,先執行完成所有欄位保留運算式,再執行重新命名運算式。

重要

預設保留時間欄位__time__和__time_ns_part__,並且不可重新命名與覆蓋,更多資訊,請參見時間欄位

文法

| project -wildcard <field-pattern>, <output>=<field>, ...

參數說明

參數

類型

必填

說明

wildcard

Bool

是否開啟通配模式。預設為欄位精確匹配。您需要開啟通配模式時,需添加該參數。

field-pattern

FieldPattern

需要保留的欄位名稱或欄位和萬用字元組合(處理匹配到的所有欄位)。

output

Field

需要重新命名的新欄位名稱,不支援多次重新命名至相同的目標欄位。

重要

如果新欄位與輸入資料中欄位重名,其結果取值策略,請參見新舊值保留與覆蓋

field

Field

是​

需要重新命名的原欄位名稱。

  • 若該欄位在輸入資料中不存在,則不執行重新命名。

  • 不支援同一欄位被多次重新命名。

樣本

  • 樣本1:保留特定欄位。

    * | project level, err_msg
  • 樣本2:重新命名欄位。

    * | project log_level=level, err_msg
  • 樣本3:保留精確匹配的欄位__tag__:*

    * | project "__tag__:*"

project-away

移除與給定模式相匹配的欄位,原樣保留其他所有欄位。

重要

該指令將預設保留時間欄位__time__和__time_ns_part__,更多詳情,請參見時間欄位

文法

| project-away -wildcard <field-pattern>, ...

參數說明

參數

類型

必填

說明

wildcard

Bool

是否開啟通配模式。預設為欄位精確匹配。您需要開啟通配模式時,需添加該參數。

field-pattern

FieldPattern

需要移除的欄位名稱或者欄位和萬用字元組合(處理匹配到的所有欄位)。

project-rename

重新命名指定欄位,並保留其他所有欄位原樣。

重要

預設保留時間欄位__time__和__time_ns_part__,並且不可重新命名與覆蓋,更多詳情,請參見時間欄位

文法

| project-rename <output>=<field>, ...

參數說明

參數

類型

必填

說明

output

Field

重新命名後的欄位名稱。不支援多次重新命名至相同的目標欄位。

重要

如果新欄位與輸入資料中欄位重名,其結果取值策略,請參見新舊值保留與覆蓋

field

Field

待重新命名的原欄位名稱。

  • 若該欄位在資料條目中不存在,則不執行重新命名。

  • 不支援同一欄位被多次重新命名

樣本

重新命名指定欄位。

* | project-rename log_level=level, log_err_msg=err_msg

expand-values

展開指定欄位的第一層JSON對象,產生多條結果。

重要
  • 展開結果的資料類型為VARCHAR。如果結果欄位與輸入資料中欄位重名,取值策略請參見新舊值保留與覆蓋

  • 無法操作時間欄位__time____time_ns_part__,請參見時間欄位

  • 支援情境:資料加工(新版)。不同SPL使用情境請參見通用參考

文法

| expand-values -path=<path> -limit=<limit> -keep <field> as <output>

參數說明

參數

類型

必填

說明

path

JSONPath

否​

指定欄位內容中的JSON路徑,用於定位需要展開的內容位置。

預設值為空白,表示直接展開指定欄位的完整內容。

limit

Integer

每條未經處理資料可展開的最大條目數,值為1至10之間的整數。預設值為10。

keep

Bool

展開後是否保留原欄位。預設不保留,需要保留時,開啟此開關。

field

Field

需要展開的原欄位名稱,支援類型為VARCHAR。如果指定欄位不存在,則不執行展開操作。

output

Field

展開的目標欄位名稱。如果不指定,則預設輸出結果至輸入欄位。

針對原始內容的展開邏輯為:

JSON數組:根據數組的元素逐個展開。

JSON字典:根據字典索引值對逐個展開。

其他JSON類型:返回原值。

非法JSON:返回null

樣本

  • 樣本1:展開數組,輸出多條結果資料。

    • SPL語句

      * | expand-values y
    • 輸入資料

      x: 'abc'
      y: '[0,1,2]'
    • 輸出資料

      # 條目1
      x: 'abc'
      y: '0'
      
      # 條目2
      x: 'abc'
      y: '1'
      
      # 條目3
      x: 'abc'
      y: '2'
  • 樣本2:展開字典,輸出多條結果資料。

    • SPL語句

      * | expand-values y
    • 輸入資料

      x: 'abc'
      y: '{"a": 1, "b": 2}'
    • 輸出資料

      # 條目1
      x: 'abc'
      y: '{"a": 1}'
      
      # 條目2
      x: 'abc'
      y: '{"b": 2}'
  • 樣本3:展開指定JSON Path下的內容,並輸出至新欄位。

    • SPL語句

      * | expand-values -path='$.body' -keep content as body
    • 輸入資料

      content: '{"body": [0, {"a": 1, "b": 2}]}'
    • 輸出資料

      # 條目1
      content: '{"body": [1, 2]}'
      body: '0'
      
      # 條目2
      content: '{"body": [1, 2]}'
      body: '{"a": 1, "b": 2}'