全部產品
Search
文件中心

Simple Log Service:操作符函數

更新時間:Jun 30, 2024

本文介紹操作符函數的文法規則,包括參數解釋、函數樣本等。

函數列表

說明

如果值為負數,請使用op_neg(positive value)函數,例如:您要表示-1,請使用op_neg(1)。

類型

函數

說明

條件判斷函數

op_if

根據判斷條件返回不同運算式的值。

op_ifnullop_coalesce

返回第一個值不為None的運算式的值。

op_nullif

如果運算式1等於運算式2,返回None。否則返回運算式1的值。

op_and

使用邏輯運算and,對任意類型值進行真假判斷,所有參數值為真時返回True。

op_not

使用邏輯運算not,對任意類型值進行真假判斷,返回參數值的反義布爾值。

op_or

使用邏輯運算or,對任意類型值進行真假判斷。當任意參數值為真時返回True,所有參數值為假時返回False。

比較

op_eq

按照a==b條件進行計算,返回True或False。

a和b類型必須一致,例如都是字串、數字或者列表。

op_ge

按照a>=b條件進行計算,返回True或False。

a和b類型必須一致,例如都是字串、數字或者列表。

op_gt

按照a>b條件進行計算,返回True或False。

a和b類型必須一致,例如都是字串、數字或者列表。

op_le

按照a<=b條件進行計算,返回True或False。

a和b類型必須一致,例如都是字串、數字或者列表。

op_lt

按照a<b條件進行計算,返回True或False。

a和b類型必須一致,例如都是字串、數字或者列表。

op_ne

按照a!=b條件進行計算,返回True或False。

a和b類型必須一致,例如都是字串、數字或者列表。

容器判斷

op_len

計算文本字串中的字元數,可用於字串和其他返回元組、列表、字典的運算式。

op_in

判斷字串、元組、列表或字典中是否包含特定元素,返回True或False。

op_not_in

判斷字串、元組、列表或字典中是否不包含特定元素,返回True或False。

op_slice

對指定字串、數組、元組進行截取。

op_index

根據字串、數組、元組的下標返回其對應的元素。

一般性多值操作

op_add

計算多個值的和,可以是字串或者數字等。

op_max

計算多個欄位或運算式表示的數值的最大值。

op_min

計算多個欄位或運算式表示的數值的最小值。

op_if

根據判斷條件返回不同運算式的值。

  • 函數格式

    op_if(condition, expression1, expression2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    condition

    任意

    判斷條件。如果該條件為非布爾值,系統將對其採用真假判斷。更多資訊,請參見真假判斷

    expression1

    任意

    判斷結果為True時,返回該運算式的值。

    expression2

    任意

    判斷結果為False時,返回該運算式的值。

  • 返回結果

    返回相應的運算式的值。

  • 函數樣本

    • 樣本1:如果contentTrue,則把運算式1的值賦給test_if

      • 原始日誌

        content: hello
      • 加工規則

        e_set("test_if", op_if(v("content"),"still origion content","replace this"))
      • 加工結果

        content: hello
        test_if:  still origion content
    • 樣本2:如果content為False,則把運算式2的值賦給test_if

      • 原始日誌

        content: 0
      • 加工規則

        e_set("test_if", op_if(ct_int(v("content", default=0)),"still origion content","replace this"))
      • 加工結果

        content: 0
        test_if:  replace this

op_ifnull

返回第一個值不為None的運算式的值。

  • 函數格式

    op_ifnull(expression1, expression2, ....)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    expression1

    任意

    運算式1。

    expression2

    任意

    運算式2。

  • 返回結果

    返回第一個值不為None的運算式的值。

  • 函數樣本

    • 樣本1:

      • 原始日誌

        test_if: hello
        escape_name: Etl
      • 加工規則

        e_set("test_ifnull", op_ifnull(v("escape_name"),v("test_if")))
      • 加工結果

        test_if: hello
        escape_name: Etl
        test_ifnull:  Etl
    • 樣本2:

      • 原始日誌

        test_if: hello
        escape_name: Etl
      • 加工規則

        e_set("test_ifnull", op_ifnull(v("test_if"),v("escape_name")))
      • 加工結果

        test_if: hello
        escape_name: Etl
        test_ifnull:  hello

op_coalesce

返回第一個值不為None的運算式的值。

op_ifnull函數的參數說明和樣本類似。更多資訊,請參見op_ifnull

op_nullif

如果運算式1等於運算式2,返回None。否則返回運算式1的值。

  • 函數格式

    op_nullif(expression1, expression2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    expression1

    任意

    運算式1。

    expression2

    任意

    運算式2。

  • 返回結果

    如果運算式1和運算式2相等返回None,否則返回運算式1的值。

  • 函數樣本

    • 樣本1:

      • 原始日誌

        content: hello
        escape_name: Etl
      • 加工規則

        e_set("test_ifnull", op_nullif(v("content"),v("escape_name")))
      • 加工結果

        content: hello
        escape_name: Etl
        test_nullif:  hello
    • 樣本2:

      • 原始日誌

        content: hello
        escape_name: hello
      • 加工規則

        e_set("test_ifnull", op_nullif(v("content"),v("escape_name")))
      • 加工結果

        #因為content與escape_name內容一樣,所以沒有任何內容返回給test_isnull欄位。
        content: hello
        escape_name: hello

op_and

使用邏輯運算and,對任意類型值進行真假判斷,所有參數值為真時返回True。

  • 函數格式

    op_and(value1, value2, ...)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    任意

    運算值2。

  • 返回結果

    • 所有參數值為真時返回True。

    • 對任意類型值進行真假判斷。更多資訊,請參見真假判斷

  • 函數樣本

    • 樣本1:

      • 原始日誌

        number1: 123
        number2: 234
      • 加工規則

        e_set("op_and", op_and(v("number1"),v("number2")))
      • 加工結果

        number1: 123
        number2: 234
        op_and:  True
    • 樣本2:

      • 原始日誌

        number1: 0
        number2: 234
      • 加工規則

        e_set("op_and", op_and(v("number1"),v("number2")))
      • 加工結果

        number1: 0
        number2: 234
        op_and: True
    • 樣本3:

      • 原始日誌

        ctx1: False
        ctx2: 234
      • 加工規則

        e_set("op_and", op_and(v("ctx1"),v("ctx2")))
      • 加工結果

        ctx1: False
        ctx2: 234
        op_and: False
    • 樣本4:

      • 原始日誌

        ctx1: True
        ctx2: 234
      • 加工規則

        e_set("op_and", op_and(v("ctx1"),v("ctx2")))
      • 加工結果

        ctx1: True
        ctx2: 234
        op_and: True

op_not

使用邏輯運算not,對任意類型值進行真假判斷,返回運算式值的反義布爾值。

  • 函數格式

    op_not(expression)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    expression

    任意

    運算式。

  • 返回結果

    • 返回運算式值的反義布爾值。

    • 對任意類型值進行真假判斷。更多資訊,請參見真假判斷

  • 函數樣本

    • 樣本1:

      • 原始日誌

        ctx1: True
      • 加工規則

        e_set("op_not", op_not(v("ctx1")))
      • 加工結果

        ctx1: True
        op_not:  False
    • 樣本2:

      • 原始日誌

        ctx1: 345
      • 加工規則

        e_set("op_not", op_not(v("ctx1")))
      • 加工結果

        ctx1: 345
        op_not:  False
    • 樣本3:

      • 原始日誌

        ctx1: 0
      • 加工規則

        e_set("op_not", op_not(ct_int(v("ctx1"))))
      • 加工結果

        ctx1: 0
        op_not:  True
    • 樣本4:

      • 原始日誌

        ctx1: ETL
      • 加工規則

        e_set("op_not", op_not(v("ctx1")))
      • 加工結果

        ctx1: ETL
        op_not:  False
    • 樣本5:

      • 原始日誌

        ctx1: None
      • 加工規則

        e_set("op_not", op_not(v("ctx1")))
      • 加工結果

        ctx1: None
        op_not:  True

op_or

使用邏輯運算or,對任意類型值進行真假判斷。當任意運算式的值為真時返回True,所有運算式值為假時返回False。

  • 函數格式

    op_or(expression1, expression2, ...)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    expression1

    任意

    運算式1。

    expression2

    任意

    運算式2。

  • 返回結果

    • 任意運算式的值為真時返回True,所有運算式的值為假時返回False。

    • 對任意類型值進行真假判斷。更多資訊,請參見真假判斷

  • 函數樣本

    • 樣本1:

      • 原始日誌

        ctx1: 123
        ctx2: 234
      • 加工規則

        e_set("op_or", op_or(v("ctx1"),v("ctx2")))
      • 加工結果

        ctx1: 123
        ctx2: 234
        op_or:  True
    • 樣本2:

      • 原始日誌

        ctx1: 0
        ctx2: 234
      • 加工規則

        e_set("op_or", op_or(v("ctx1"),v("ctx2")))
      • 加工結果

        ctx1: 0
        ctx2: 234
        op_or:  True
    • 樣本3:

      • 原始日誌

        ctx1: ETL
        ctx2: ALIYUN
      • 加工規則

        e_set("op_or", op_or(v("ctx1"),v("ctx2")))
      • 加工結果

        ctx1: ETL
        ctx2: ALIYUN
        op_or:  True
    • 樣本4:

      • 原始日誌

        ctx1: True
        ctx2: False
      • 加工規則

        e_set("op_or", op_or(v("ctx1"),v("ctx2")))
      • 加工結果

        ctx1: True
        ctx2: False
        op_or:  True
    • 樣本5:

      • 原始日誌

        ctx1: 0
        ctx2: False
      • 加工規則

        e_set("op_or", op_or(ct_int(v("ctx1")),v("ctx2")))
      • 加工結果

        ctx1: 0
        ctx2: False
        op_or:  False
    • 樣本6:

      • 原始日誌

        ctx1: 124
        ctx2: True
      • 加工規則

        e_set("op_or", op_or(v("ctx1"),v("ctx2")))
      • 加工結果

        ctx1: 124
        ctx2: True
        op_or:  True

op_eq

按照a==b條件進行計算,返回True或False。

  • 函數格式

    op_eq(value1, value2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    必須與值1相同

    運算值2。

  • 返回結果

    如果值1與值2相等返回True,否則返回False。

  • 函數樣本

    • 樣本1:

      • 原始日誌

        content: hello
        ctx: hello
      • 加工規則

        e_set("test_eq", op_eq(v("content"),v("ctx")))
      • 加工結果

        content: hello
        ctx: hello
        test_eq: True
    • 樣本2:

      • 原始日誌

        content: hello
        ctx: ctx
      • 加工規則

        e_set("test_eq", op_eq(v("content"),v("ctx")))
      • 加工結果

        content: hello
        ctx: ctx
        test_eq: False

op_ge

按照a>=b條件進行計算,返回True或False。

  • 函數格式

    op_ge(value1, value2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    必須與值1相同

    運算值2。

  • 返回結果

    如果值1大於等於值2返回True,否則返回False。

  • 函數樣本

    • 樣本1:假如apple_price的值大於等於orange_price的值,則返回True。

      • 原始日誌

        apple_price: 16
        orange_price: 14
      • 加工規則

        e_set("test_ge", op_ge(ct_int(v("apple_price")),ct_int(v("orange_price"))))
      • 加工結果

        apple_price: 16
        orange_price: 14
        test_ge: True
    • 樣本2:假如apple_price的值小於orange_price的值,則返回False。

      • 原始日誌

        apple_price: 12
        orange_price: 14
      • 加工規則

        e_set("test_ge", op_ge(ct_int(v("apple_price")),ct_int(v("orange_price"))))
      • 加工結果

        apple_price: 12
        orange_price: 14
        test_ge: False

op_gt

按照a>b條件進行計算,返回True或False。

  • 函數格式

    op_gt(value1, value2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    必須與值1相同

    運算值2。

  • 返回結果

    如果值1大於值2返回True,否則返回False。

  • 函數樣本

    • 樣本1:判斷old_number取值是否大於young_number取值,大於返回True否則返回False。

      • 原始日誌

        old_number: 16
        young_number: 14
      • 加工規則

        e_set("op_gt",op_gt(ct_int(v("old_number")),ct_int(v("young_number"))))
      • 加工結果

        old_number: 16
        young_number: 14
        test_ge: True
    • 樣本2:判斷priority取值是否大於price取值,大於返回True否則返回False。

      • 原始日誌

        priority: 14
        price: 16
      • 加工規則

        e_set("op_gt",op_gt(ct_int(v("priority")),ct_int(v("price"))))
      • 加工結果

        priority: 14
        price: 16
        test_ge: False

op_le

按照a<=b條件進行計算,返回True或False。

  • 函數格式

    op_le(value1, value2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    必須與值1相同

    運算值2。

  • 返回結果

    如果值1小於等於值2返回True,否則返回False。

  • 函數樣本

    • 樣本1:如果priority的值小於等於price的值,返回True否則返回False。

      • 原始日誌

        priority: 16
        price: 14
      • 加工規則

        e_set("op_le",op_le(ct_int(v("priority")),ct_int(v("price"))))
      • 加工結果

        priority: 16
        price: 14
        test_ge: False
    • 樣本2:如果priority的值小於等於price的值,返回True否則返回False。

      • 原始日誌

        priority: 14
        price: 16
      • 加工規則

        e_set("op_le",op_le(ct_int(v("priority")),ct_int(v("price"))))
      • 加工結果

        priority: 14
        price: 16
        test_ge: True

op_lt

按照a<b條件進行計算,返回True或False。

  • 函數格式

    op_lt(value1, value2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    必須與值1相同

    運算值2。

  • 返回結果

    如果值1小於值2返回True,否則返回False。

  • 函數樣本

    • 樣本1: 如果priority的值小於price的值,返回True否則返回False。

      • 原始日誌

        priority: 16
        price: 14
      • 加工規則

        e_set("op_lt",op_lt(ct_int(v("priority")),ct_int(v("price"))))
      • 加工結果

        priority: 16
        price: 14
        op_lt: False
    • 樣本2:如果priority的值小於price的值,返回True否則返回False。

      • 原始日誌

        priority: 14
        price: 15
      • 加工規則

        e_set("op_lt",op_lt(ct_int(v("priority")),ct_int(v("price"))))
      • 加工結果

        priority: 14
        price: 15
        op_lt: True

op_ne

按照a!=b條件進行計算,返回True或False。

  • 函數格式

    op_ne(value1, value2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    必須與值1相同

    運算值2。

  • 返回結果

    如果值1不等於值2返回True,否則返回False。

  • 函數樣本

    • 樣本1:

      • 原始日誌

        priority: 16
        price: 14
      • 加工規則

        e_set("op_ne",op_ne(ct_int(v("priority")),ct_int(v("price"))))
      • 加工結果

        priority: 16
        price: 14
        op_ne: True
    • 樣本2:

      • 原始日誌

        priority: 14
        price: 14
      • 加工規則

        e_set("op_ne",op_ne(ct_int(v("priority")),ct_int(v("price"))))
      • 加工結果

        priority: 14
        price: 14
        op_ne: False

op_len

計算文本字串中的字元數,可用於字串和其他返回元組、列表、字典的運算式。

  • 函數格式

    op_len(value)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value

    字串、元組、列表或字典等

    運算值。

  • 返回結果

    返回欄位的長度。

  • 函數樣本

    • 原始日誌

      content: I,love,this,world
    • 加工規則

      e_set("op_len",op_len(v("content")))
    • 加工結果

      content: I,love,this,world
      op_len: 17

op_in

判斷字串、元組、列表或字典中是否包含特定元素,返回True或False。

  • 函數格式

    op_in(value1, value2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    字串、元組、列表或字典等

    字串、元組、列表或者字典等。

    value2

    任意

    判斷的元素。

    說明

    函數中字串、元組、列表或字典參數在前,元素在後。

  • 返回結果

    如果字串、元組、列表或字典a中包含元素b返回True,否則返回False。

  • 函數樣本

    • 原始日誌

      list:  [1, 3, 2, 7, 4, 6]
      num2:  2
    • 加工規則

      e_set("op_in",op_in(v("list"),v("num2")))
    • 加工結果

      list:  [1, 3, 2, 7, 4, 6]
      num2:  2
      op_in: True

op_not_in

判斷字串、元組、列表或字典中是否不包含特定元素,返回True或False。

  • 函數格式

    op_not_in(value1, value2)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    字串、元組、列表或字典等

    字串、元組、列表或者字典等。

    value2

    任意

    判斷的元素。

    說明

    函數中字串、元組、列表或字典參數在前,元素在後。

  • 返回結果

    如果字串、元組、列表或字典中不包含元素返回True,否則返回False。

  • 函數樣本

    • 原始日誌

      list:  [1, 3, 2, 7, 4, 6]
      num2:  12
    • 加工規則

      e_set("op_not_in",op_not_in(v("list"),v("num2")))
    • 加工結果

      list:  [1, 3, 2, 7, 4, 6]
      num2:  12
      op_in: True

op_slice

對指定字串、數組、元組進行截取。

  • 函數格式

    op_slice(value, start, end=None, step=None)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value

    String

    函數要切片的值。

    start

    Num

    截取的起始位置,預設為位置0。

    end

    Num

    截取的結束位置,不包含該位置,預設為字串結尾位置。

    step

    Num

    每次截取的長度。

  • 返回結果

    返回提取後的字串。

  • 函數樣本

    • 樣本1:對word欄位從開頭到結尾開始進行截取,步長為2。

      • 原始日誌

        word:  I,love,this,world
      • 加工規則

        e_set("op_slice",op_slice(v("word"),2))
      • 加工結果

        word:  I,love,this,world
        op_slice: I,
    • 樣本2:對word欄位從位置2到位置9進行截取,步長為1。

      • 原始日誌

        word:  I,love,this,world
      • 加工規則

        e_set("op_slice",op_slice(v("word"),2,9,1))
      • 加工結果

        word:  I,love,this,world
        op_slice: love,th

op_index

根據字串、數組、元組的下標返回其對應的元素。

  • 函數格式

    op_index(value, index)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value

    String

    字串、數組、元組等。

    index

    Num

    需要傳入的字串、數組或元組的下標。

  • 返回結果

    返回下標對應的元素。

  • 函數樣本

    • 樣本1:返回word欄位下標為0的元素。

      • 原始日誌

        word:  I,love,this,world
      • 加工規則

        e_set("op_index",op_index(v("word"),0))
      • 加工結果

        word:  I,love,this,world
        op_slice: I
    • 樣本2:返回word欄位下標為3的元素。

      • 原始日誌

        word:  I,love,this,world
      • 加工規則

        e_set("op_index",op_index(v("word"),3))
      • 加工結果

        word:  I,love,this,world
        op_index: o

op_add

計算多個值的和,可以是字串或者數字等。

  • 函數格式

    op_add(value1, value2, ...)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    字串、元組、列表或字典等

    運算值1。

    value2

    必須與值1一樣

    運算值2。

  • 返回結果

    返回求和操作後的數值。

  • 函數樣本

    • 樣本1:計算price_orange和price_apple總金額。

      • 原始日誌

        price_orange: 2
        price_apple: 13
      • 加工規則

        e_set("account",op_add(ct_int(v("price_orange")),ct_int(v("price_apple"))))
      • 加工結果

        price_orange: 2
        price_apple: 13
        account:  15
    • 樣本2:統計bytes_in和bytes_out的和。

      • 原始日誌

        bytes_in: 214
        bytes_out: 123
      • 加工規則

        e_set("total_bytes", op_add(ct_int(v("bytes_in")), ct_int(v("bytes_out"))))
      • 加工結果

        bytes_in: 214
        bytes_out: 123
        total_bytes:  337
    • 樣本3:給網址添加HTTPS頭。

      • 原始日誌

        host: aliyun.com
      • 加工規則

        e_set("website", op_add("https://", v("host")))
      • 加工結果

        host: aliyun.com
        website: https://aliyun.com

op_max

計算多個欄位或運算式表示的數值的最大值。

  • 函數格式

    op_max(value1, value2, ...)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    必須與值1一樣

    運算值2。

  • 返回結果

    返回多個數值中的最大值。

  • 函數樣本

    • 原始日誌

      price_orange:  2
      priority_apple:  13
    • 加工規則

      e_set("max_price", op_max(ct_int(v("price_orange")),ct_int(v("priority_apple"))))
    • 加工結果

      price_orange:  2
      priority_apple:  13
      max_price:  13

op_min

計算多個欄位或運算式表示的數值的最小值。

  • 函數格式

    op_min(value1, value2, ...)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value1

    任意

    運算值1。

    value2

    必須與值1一樣

    運算值2。

  • 返回結果

    返回多個數值中的最小值。

  • 函數樣本

    • 原始日誌

      price_orange:  2
      price_apple:  13
    • 加工規則

      e_set("op_min", op_min(ct_int(v("price_orange")),ct_int(v("price_apple"))))
    • 加工結果

      price_orange:  2
      price_apple:  13
      op_min:  2