tencent cloud

Cloud Log Service

Lambda関数

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 14:32:16
AI翻訳
本稿では、Lambda関数がログデータを分析処理するための構文と例についてご紹介します。
CLSは、SQL分析ステートメントでLambda式を定義し、その式を指定した関数に渡して関数の表現を豊かにすることをサポートします。

構文

Lambda式は関数と一緒に使用する必要があります。例えば、filter関数、reduce関数、transform関数、zip_with関数です。Lambda式の構文は以下の通りです:
parameter -> expression
パラメータ
説明
parameter
パラメータを渡すための識別子。
expression
式、ほとんどの Mysql 式は Lambda 式で使用できます。例:
x -> x + 1 (x, y) -> x + y x -> regexp_like(x, 'a+') x -> x[1] / x[2] x -> if(x > 0, x, -x) x -> coalesce(x, 0) x -> cast(x AS JSON) x -> x + try(1 / 0)

例

例1:Lambda式 x-> x is not null を使用

配列[5、null、7、null]からnull以外の要素を返します。
クエリおよび分析ステートメント
* | SELECT filter(array[5, null, 7, null], x -> x is not null)
クエリおよび分析結果
[5,7]

例2:Lambda式 0、(s, x) -> s + x, s -> s を使用

配列[5、20、50]の各要素を合計した結果を返します。
クエリおよび分析ステートメント
* | SELECT reduce(array[5, 20, 50], 0, (s, x) -> s + x, s -> s)
クエリおよび分析結果
75

例3:Lambda式 (k, v) -> v> 10 を使用

2つの配列をマッピングして1つのMapを作成し、そのMapのキー値が10より大きい場合です。
クエリおよび分析ステートメント
* | SELECT map_filter(map(array['class01', 'class02', 'class03'], array[11, 10, 9]), (k,v) -> v > 10)
クエリおよび分析結果
{"class01":11}

例4:Lambda式 (x, y) -> (y, x) を使用

2つの配列の要素位置を交換し、配列内の同じインデックスの要素を抽出して新しい2次元配列を構成します。
クエリおよび分析ステートメント
* | SELECT zip_with(array['a', 'b', 'c'], array['d', 'e', 'f'], (x, y) -> concat(x, y))
クエリおよび分析結果
["ad","be","cf"]

例5:Lambda式 x -> coalesce(x, 0)+1 を使用

配列[5、null、6]の各要素に1を加算してから返します。配列にnull要素が含まれている場合は0に変換してから1を加算します。
クエリおよび分析ステートメント
* | SELECT transform(array[5, NULL, 6], x -> coalesce(x, 0) + 1)
クエリおよび分析結果
[6,1,7]

その他の例

* | SELECT filter(array[], x -> true)
* | SELECT map_filter(map(array[],array[]), (k, v) -> true)
* | SELECT reduce(array[5, 6, 10, 20], -- calculates arithmetic average: 10.25
cast(row(0.0, 0) AS row(sum double, count integer)),
(s, x) -> cast(row(x + s.sum, s.count + 1) AS row(sum double, count integer)),
s -> if(s.count = 0, null, s.sum / s.count))
* | SELECT reduce(array[2147483647, 1], cast(0 AS bigint), (s, x) -> s + x, s -> s)
* | SELECT reduce(array[5, 20, null, 50], 0, (s, x) -> s + x, s -> s)
* | SELECT transform(array[array[1, null, 2], array[3, null]], a -> filter(a, x -> x is not null))


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック