本トピックでは、演算子関数の構文、パラメーター、および例について説明します。
関数
負の値を使用するには、op_neg(正の値) 関数を使用します。 たとえば、-1 を表すには、op_neg(1) を使用します。
タイプ | 関数 | 説明 |
条件付き関数 | 条件に基づいて式の値を返します。 | |
None ではない最初の式の値を返します。 | ||
式 1 が式 2 と等しい場合は None を返します。 それ以外の場合は、式 1 の値を返します。 | ||
論理 AND 演算を実行します。 すべてのパラメーター値が true の場合は True を返します。 | ||
論理 NOT 演算を実行します。 パラメーターの逆のブール値を返します。 | ||
論理 OR 演算を実行します。 いずれかのパラメーター値が true の場合は True を返します。 すべてのパラメーター値が false の場合は False を返します。 | ||
比較 |
a と b のタイプは、文字列、数値、リストなど、同じである必要があります。 | |
a と b のタイプは、文字列、数値、リストなど、同じである必要があります。 | ||
a と b のタイプは、文字列、数値、リストなど、同じである必要があります。 | ||
a と b のタイプは、文字列、数値、リストなど、同じである必要があります。 | ||
a と b のタイプは、文字列、数値、リストなど、同じである必要があります。 | ||
a と b のタイプは、文字列、数値、リストなど、同じである必要があります。 | ||
コンテナの特定 | テキスト文字列の文字数を計算します。 この関数は、文字列、およびタプル、リスト、または辞書を返す他の式に使用できます。 | |
文字列、タプル、リスト、または辞書に特定の要素が含まれているかどうかをチェックします。 True または False を返します。 | ||
文字列、タプル、リスト、または辞書に特定の要素が含まれていないかどうかをチェックします。 True または False を返します。 | ||
指定された文字列、配列、またはタプルをスライスします。 | ||
インデックスに基づいて、文字列、配列、またはタプルから要素を返します。 | ||
汎用多値関数 | 文字列や数値など、複数の値の合計を計算します。 | |
複数の数値フィールドまたは式から最大値を返します。 | ||
複数の数値フィールドまたは式から最小値を返します。 |
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