このトピックでは、演算子関数の構文とパラメーターについて説明します。 このトピックでは、関数の使用方法の例も示します。
関数
負の値を指定する場合は、op_neg (正の値)
関数を使用する必要があります。 たとえば、値 -1
を指定する場合は、op_neg(1) を使用する必要があります。
カテゴリ | 関数 | 説明 |
条件付き関数と論理関数 | 指定された条件に基づいて式の値を返します。 | |
値がNoneではない最初の式の値を返します。 | ||
式1の値が式2の値と等しい場合はNoneを返し、式1の値が式2の値と等しくない場合は式1の値を返します。 | ||
論理AND演算子を使用して指定された式を評価し、指定されたすべての式がTrueに評価された場合はtrueを返します。 式の値は任意の型にすることができます。 | ||
論理NOT演算子を使用して指定された式を評価し、指定された式の逆ブール値を返します。 式の値は任意の型にすることができます。 | ||
論理OR演算子を使用して指定された式を評価し、指定された式がTrueに評価された場合はtrueを返し、指定されたすべての式がFalseに評価された場合はfalseを返します。 式の値は任意の型にすることができます。 | ||
比較関数 |
aとbのデータ型は同じでなければなりません。 たとえば、aとbは両方とも文字列、数字、またはリストです。 | |
aとbのデータ型は同じでなければなりません。 たとえば、aとbは両方とも文字列、数字、またはリストです。 | ||
aとbのデータ型は同じでなければなりません。 たとえば、aとbは両方とも文字列、数字、またはリストです。 | ||
aとbのデータ型は同じでなければなりません。 たとえば、aとbは両方とも文字列、数字、またはリストです。 | ||
aとbのデータ型は同じでなければなりません。 たとえば、aとbは両方とも文字列、数字、またはリストです。 | ||
aとbのデータ型は同じでなければなりません。 たとえば、aとbは両方とも文字列、数字、またはリストです。 | ||
コンテナ関数 | テキスト文字列の文字数を計算します。 この関数は、タプル、リスト、または辞書を返す文字列および式で使用できます。 | |
文字列、タプル、リスト、またはディクショナリに指定された要素が含まれているかどうかをチェックし、TrueまたはFalseを返します。 | ||
文字列、タプル、リスト、またはディクショナリが指定された要素を含まないかどうかをチェックし、TrueまたはFalseを返します。 | ||
指定した文字列、配列、またはタプルから文字列を抽出します。 | ||
指定された文字列、配列、またはタプルのインデックスに対応する要素を返します。 | ||
汎用の多値関数 | 複数の値の合計を計算します。 値は文字列または数字です。 | |
複数のフィールドまたは式の値の中で最大の値を返します。 | ||
複数のフィールドまたは式の値の中で最小の値を返します。 |
op_if
op_if関数は、指定された条件に基づいて式の値を返します。
op_if(condition, expression1, expression12)
パラメーター
データ型
必須
説明
condition
任意
課金されます
条件。 条件の値がブール値でない場合、システムは条件がtrueかfalseかを評価します。 詳細については、「True or false evaluation」をご参照ください。
expression1
任意
課金されます
条件がTrueの場合に値が返される式。
expression2
任意
課金されます
条件がFalseの場合に値が返される式。
式の値が返されます。
例1:
content
フィールドの値がTrueと評価された場合、式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
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
op_coalesce関数は、値がNoneではない最初の式の値を返します。
op_coalesce関数のパラメーターと例は、op_ifnull
関数のパラメーターと例と同様です。 詳細については、「op_ifnull」をご参照ください。
op_nullif
op_nullif関数は、式1の値が式2の値と等しい場合はNoneを返し、式1の値が式2の値と等しくない場合は式1の値を返します。
op_nullif(expression1, expression2)
パラメーター
データ型
必須
説明
expression1
任意
課金されます
式1
expression2
任意
課金されます
式2
式1の値が式2の値と等しい場合は、何も返されません。 式1の値が式2の値と等しくない場合、式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")))
結果
# In this example, the value of the content field is the same as the value of the escape_name field. Therefore, no value is assigned to the test_isnull field. content: hello escape_name: hello
op_and
op_and関数は、論理AND演算子を使用して指定された式を評価し、指定されたすべての式がTrueに評価された場合はtrueを返します。 式の値は任意の型にすることができます。
op_and(value1, value2, ...)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
任意
課金されます
Value 2
指定されたすべての式がTrueに評価される場合、trueが返されます。
式の値は任意の型にすることができます。 詳細については、「True or false evaluation」をご参照ください。
例 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の結果
ctx1: False ctx2: 234 op_and: False
例 4:
生ログ
ctx1: True ctx2: 234
変換ルール
e_set("op_and", op_and(v("ctx1"),v("ctx2")))
ctx1の結果
ctx1: True ctx2: 234 op_and: True
op_not
op_not関数は、論理NOT演算子を使用して指定された式を評価し、指定された式の逆ブール値を返します。 式の値は任意の型にすることができます。
op_not(expression)
パラメーター
データ型
必須
説明
expression
任意
課金されます
式。
指定された式の逆ブール値が返されます。
式の値は任意の型にすることができます。 詳細については、「True or false evaluation」をご参照ください。
例 1:
生ログ
ctx1: True
変換ルール
e_set("op_not", op_not(v("ctx1")))
ctx1の結果
ctx1: True op_not: False
例 2:
生ログ
ctx1: 345
変換ルール
e_set("op_not", op_not(v("ctx1")))
ctx1の結果
ctx1: 345 op_not: False
例 3:
生ログ
ctx1: 0
変換ルール
e_set("op_not", op_not(ct_int(v("ctx1"))))
ctx1の結果
ctx1: 0 op_not: True
例 4:
生ログ
ctx1: ETL
変換ルール
e_set("op_not", op_not(v("ctx1")))
ctx1の結果
ctx1: ETL op_not: False
例5:
生ログ
ctx1: None
変換ルール
e_set("op_not", op_not(v("ctx1")))
ctx1の結果
ctx1: None op_not: True
op_or
op_or関数は、論理OR演算子を使用して指定された式を評価し、指定された式がTrueに評価された場合はtrueを返し、指定されたすべての式がFalseに評価された場合はfalseを返します。 式の値は任意の型にすることができます。
op_or(expression1, expression2, ...)
パラメーター
データ型
必須
説明
expression1
任意
課金されます
式1
expression2
任意
課金されます
式2
指定された式がTrueに評価された場合、trueが返されます。 指定されたすべての式がFalseに評価された場合、falseが返されます。
式の値は任意の型にすることができます。 詳細については、「True or false evaluation」をご参照ください。
例 1:
生ログ
ctx1: 123 ctx2: 234
変換ルール
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
ctx1の結果
ctx1: 123 ctx2: 234 op_or: True
例 2:
生ログ
ctx1: 0 ctx2: 234
変換ルール
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
ctx1の結果
ctx1: 0 ctx2: 234 op_or: True
例 3:
生ログ
ctx1: ETL ctx2: ALIYUN
変換ルール
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
ctx1の結果
ctx1: ETL ctx2: ALIYUN op_or: True
例 4:
生ログ
ctx1: True ctx2: False
変換ルール
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
ctx1の結果
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の結果
ctx1: 0 ctx2: False op_or: False
例6:
生ログ
ctx1: 124 ctx2: True
変換ルール
e_set("op_or", op_or(v("ctx1"),v("ctx2")))
ctx1の結果
ctx1: 124 ctx2: True op_or: True
op_eq
op_eq関数は、a==b
の条件に基づいてTrueまたはFalseを返します。
op_eq(value1, value2)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 2
値1の値が値2の値と等しい場合、Trueが返されます。 値1の値が値2の値と等しくない場合は、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
op_ge関数は、a>=b
の条件に基づいてTrueまたはFalseを返します。
op_ge(value1, value2)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 2
値1の値が値2の値以上の場合は、Trueが返されます。 値1の値が値2の値より小さい場合は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
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の結果
apple_price: 12 orange_price: 14 test_ge: False
op_gt
op_gt関数は、a>b
の条件に基づいてTrueまたはFalseを返します。
op_gt(value1, value2)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 2
値1の値が値2の値より大きい場合は、Trueが返されます。 値1の値が値2の値以下の場合は、Falseが返されます。
例1: old_numberフィールドの値がyoung_numberフィールドの値より大きい場合はTrueを返します。 old_numberフィールドの値がyoung_numberフィールドの値以下の場合はFalseを返します。
old_number: 16生ログ
old_number: 16 young_number: 14
変換ルール
e_set("op_gt",op_gt(ct_int(v("old_number")),ct_int(v("young_number"))))
old_numberの結果
old_number: 16 young_number: 14 test_ge: True
例2: priorityフィールドの値がpriceフィールドの値より大きい場合、Trueを返します。 priorityフィールドの値がpriceフィールドの値以下の場合は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
op_le関数は、a<=b
の条件に基づいてTrueまたはFalseを返します。
op_le(value1, value2)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 2
値1の値が値2の値以下の場合は、Trueが返されます。 値1の値が値2の値より大きい場合はFalseが返されます。
例1: priorityフィールドの値がpriceフィールドの値以下の場合、Trueを返します。 priorityフィールドの値がpriceフィールドの値より大きい場合は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を返します。 priorityフィールドの値がpriceフィールドの値より大きい場合は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
op_lt関数は、a<b
の条件に基づいてTrueまたはFalseを返します。
op_lt(value1, value2)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 2
値1の値が値2の値より小さい場合は、Trueが返されます。 値1の値が値2の値以上の場合は、Falseが返されます。
例1: priorityフィールドの値がpriceフィールドの値より小さい場合、Trueを返します。 priorityフィールドの値がpriceフィールドの値以上の場合は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を返します。 priorityフィールドの値がpriceフィールドの値以上の場合は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
op_ne関数は、a!=b
の条件に基づいてTrueまたはFalseを返します。
op_ne(value1, value2)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 2
値1の値が値2の値と等しくない場合は、Trueが返されます。 値1の値が値2の値と等しい場合は、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関数は、テキスト文字列の文字数を計算します。 この関数は、タプル、リスト、または辞書を返す文字列および式で使用できます。
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
op_in関数は、文字列、タプル、リスト、またはディクショナリに指定された要素が含まれているかどうかをチェックし、TrueまたはFalseを返します。
op_in(value1, value2)
パラメーター
データ型
必須
説明
value1
文字列、タプル、リスト、またはディクショナリ
課金されます
文字列、タプル、リスト、または辞書。
value2
任意
課金されます
チェックする要素。The element that you want to check.
説明関数では、指定された文字列、タプル、リスト、またはディクショナリが指定された要素の前に配置されます。
指定された文字列、タプル、リスト、またはディクショナリに指定された要素が含まれている場合は、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
op_not_in関数は、文字列、タプル、リスト、またはディクショナリに指定された要素が含まれていないかどうかをチェックし、TrueまたはFalseを返します。
op_not_in(value1, value2)
パラメーター
データ型
必須
説明
value1
文字列、タプル、リスト、またはディクショナリ
課金されます
文字列、タプル、リスト、または辞書。
value2
任意
課金されます
チェックする要素。The element that you want to check.
説明関数では、指定された文字列、タプル、リスト、またはディクショナリが指定された要素の前に配置されます。
指定された文字列、タプル、リスト、またはディクショナリに指定された要素が含まれていない場合は、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関数は、指定された文字列、配列、またはタプルから文字列を抽出します。
op_slice(value, start, end=None, step=None)
パラメーター
データ型
必須
説明
value
String
課金されます
文字列を抽出するために切り捨てたい値。
start
Num
課金されません
値が切り捨てられる位置。 デフォルト値:0
end
Num
課金されません
値が切り捨てられる位置。 この位置の文字は含まれません。 デフォルト値は、指定された文字列の末尾です。
step
Num
課金されません
切り捨てに使用されるステップ。
切り捨てられた値から抽出された文字列が返されます。
例1: 2のステップで、単語フィールドの値を先頭から末尾まで切り捨てます。
生のログの
word: I,love,this,world
変換ルール
e_set("op_slice",op_slice(v("word"),2))
結果
word: I,love,this,world op_slice: I,
例2: 1のステップで、単語フィールドの値を位置2から位置9に切り捨てます。
生のログの
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関数は、指定された文字列、配列、またはタプルのインデックスに対応する要素を返します。
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関数は、複数の値の合計を計算します。 値は文字列または数字です。
op_add(value1, value2, ...)
パラメーター
データ型
必須
説明
value1
文字列、タプル、リスト、またはディクショナリ
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 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の結果
bytes_in: 214 bytes_out: 123 total_bytes: 337
例3: https:// プレフィックスをURLに追加します。
生のログ・
host: aliyun.com
変換ルール
e_set("website", op_add("https://", v("host")))
結果
host: aliyun.com website: https://aliyun.com
op_max
op_max関数は、複数のフィールドまたは式の値の中で最大の値を返します。
op_max(value1, value2, ...)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 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関数は、複数のフィールドまたは式の値の中で最小の値を返します。
op_min(value1, value2, ...)
パラメーター
データ型
必須
説明
value1
任意
課金されます
Value 1
value2
値1のデータ型と同じである必要があります。
課金されます
Value 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