すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:演算子関数

最終更新日:Sep 15, 2026

本トピックでは、演算子関数の構文、パラメーター、および例について説明します。

関数

説明

負の値を使用するには、op_neg(正の値) 関数を使用します。 たとえば、-1 を表すには、op_neg(1) を使用します。

タイプ

関数

説明

条件付き関数

op_if

条件に基づいて式の値を返します。

op_ifnull、op_coalesce

None ではない最初の式の値を返します。

op_nullif

式 1 が式 2 と等しい場合は None を返します。 それ以外の場合は、式 1 の値を返します。

op_and

論理 AND 演算を実行します。 すべてのパラメーター値が true の場合は True を返します。

op_not

論理 NOT 演算を実行します。 パラメーターの逆のブール値を返します。

op_or

論理 OR 演算を実行します。 いずれかのパラメーター値が true の場合は True を返します。 すべてのパラメーター値が false の場合は 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: content フィールドが True と評価された場合、expression1 の値が test_if フィールドに割り当てられます。

      • 元のログ

        content: hello
      • 変換ルール

        e_set("test_if", op_if(v("content"),"still origin content","replace this"))
      • 結果

        content: hello
        test_if:  still origin content
    • 例 2: content フィールドが False と評価された場合、expression2 の値が test_if フィールドに割り当てられます。

      • 元のログ

        content: 0
      • 変換ルール

        e_set("test_if", op_if(ct_int(v("content", default=0)),"still origin 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_ifnull フィールドには値が返されません。
        content: hello
        escape_name: hello

op_and

任意のタイプの値に対して論理 AND 演算を実行します。 すべてのパラメーター値が true の場合は True を返します。

  • 構文

    op_and(value1, value2, ...)
  • パラメーター

    パラメーター名

    パラメーターのタイプ

    必須

    説明

    value1

    任意

    はい

    値 1。

    value2

    任意

    はい

    値 2。

  • レスポンス

    • すべてのパラメーター値が true の場合は 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 の場合は True を返します。 すべての式が false の場合は False を返します。

  • 構文

    op_or(expression1, expression2, ...)
  • パラメーター

    パラメーター名

    パラメーターのタイプ

    必須

    説明

    expression1

    任意

    はい

    式 1。

    expression2

    任意

    はい

    式 2。

  • レスポンス

    • いずれかの式が true の場合は True を返します。 すべての式が false の場合は 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。

  • レスポンス

    value1 が value2 と等しい場合は 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

    value1 と同じタイプである必要があります

    はい

    値 2。

  • レスポンス

    value1 が value2 以上である場合は True を返します。 それ以外の場合は、False を返します。

  • 例

    • 例 1: apple_price の値が orange_price の値以上であるかどうかをチェックします。

      • 元のログ

        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。

  • レスポンス

    value1 が value2 より大きい場合は True を返します。 それ以外の場合は、False を返します。

  • 例

    • 例 1: old_number の値が young_number の値より大きいかどうかをチェックします。

      • 元のログ

        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 の値より大きいかどうかをチェックします。

      • 元のログ

        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。

  • レスポンス

    value1 が value2 以下である場合は True を返します。 それ以外の場合は、False を返します。

  • 例

    • 例 1: priority の値が price の値以下であるかどうかをチェックします。

      • 元のログ

        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

    value1 と同じタイプである必要があります

    はい

    値 2。

  • レスポンス

    value1 が value2 より小さい場合は 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 の値より小さいかどうかをチェックします。

      • 元のログ

        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。

  • レスポンス

    value1 が value2 と等しくない場合は 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

    任意

    はい

    評価する要素。

    説明

    コンテナ (文字列、タプル、リスト、または辞書) は最初のパラメーターでなければならず、要素は 2 番目のパラメーターでなければなりません。

  • レスポンス

    コンテナに要素が含まれている場合は 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

    任意

    はい

    評価する要素。

    説明

    コンテナ (文字列、タプル、リスト、または辞書) は最初のパラメーターでなければならず、要素は 2 番目のパラメーターでなければなりません。

  • レスポンス

    コンテナに要素が含まれていない場合は True を返します。 それ以外の場合は、False を返します。

  • 例

    • 元のログ

      list:  [1, 3, 2, 7, 4, 6]
      num2:  12
    • 変換ルール

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

      リスト:  [1, 3, 2, 7, 4, 6]
      num2:  12
      op_in: True

op_slice

指定された文字列、配列、またはタプルをスライスします。

  • 構文

    op_slice(value, start, end=None, step=None)
  • パラメーター

    パラメーター名

    パラメーターのタイプ

    必須

    説明

    value

    文字列

    はい

    スライスする値。

    start

    数値

    いいえ

    スライスの開始位置。 デフォルト値: 0。

    end

    数値

    いいえ

    スライスの終了位置。 この位置の文字は含まれません。 デフォルト値は文字列の末尾です。

    step

    数値

    いいえ

    各キャプチャの長さ。

  • レスポンス

    戻り値は抽出された文字列です。

  • 例

    • 例 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

    文字列

    はい

    文字列、配列、またはタプル。

    index

    数値

    いいえ

    入力文字列、配列、またはタプルのインデックス。

  • レスポンス

    指定されたインデックスにある要素。

  • 例

    • 例 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: URL に 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

    value1 と同じタイプである必要があります

    はい

    値 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