tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

Lambda 函数

PDF
聚焦模式
字号
最后更新时间: 2026-01-07 15:39:44
本文将为您介绍 Lambda 函数对日志数据进行分析处理的语法及示例。
日志服务支持您在 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

将两个数组映射为一个 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)

将对换两个数组的元素位置,并提取数组中索引相同的元素组成一个新的二维数组。
查询和分析语句
* | 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))


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈