本文档为您介绍Map映射函数的语法说明及示例。

日志服务查询分析功能支持通过映射函数进行日志分析,详细语句及含义如下所示。
函数 含义 示例
下标运算符[] 获取map中某个Key对应的结果。 -
histogram(x) 按照x的每个值进行GROUP BY并计算count。语法相当于select count group by x
说明 返回结果为JSON格式。
latency > 10 | select histogram(status),等同于latency > 10 | select count(1) group by status
histogram_u(x) 按照x的每个值进行GROUP BY并计算count。
说明 返回结果为多行多列。
latency > 10 | select histogram(status),等同于latency > 10 | select count(1) group by status
map_agg(Key,Value) 返回Key、Value组成的map,并返回每个Key随机的Value。 latency > 100 | select map_agg(method,latency)
multimap_agg(Key,Value) 返回Key、Value组成的多Value map,并返回每个Key的所有的Value。 latency > 100 | select multimap_agg(method,latency)
cardinality(x) → bigint 获取map的大小。 -
element_at(map<K, V>, key) → V 获取Key对应的Value。 -
map() → map<unknown, unknown> 返回一个空的map。 -
map(array<K>, array<V>) → map<K,V> 将两个数组转换成Key、Value组成的Map。 SELECT map(ARRAY[1,3], ARRAY[2,4]); — {1 -> 2, 3 -> 4}
map_from_entries(array<row<K, V>>) → map<K,V> 把一个多维数组转化成map。 SELECT map_from_entries(ARRAY[(1, ‘x’), (2, ‘y’)]); — {1 -> ‘x’, 2 -> ‘y’}
map_concat(map1<K, V>, map2<K, V>, …, mapN<K, V>) → map<K,V> 求多个map的并集,如果某个Key存在于多个map中,则取最后一个。 -
map_filter(map<K, V>, function) → map<K,V> 请参见Lambda函数中map_filter函数。 -
map_keys(x<K, V>) → array<K> 获取map中所有的Key并以array的形式返回。 -
map_values(x<K, V>) → array<V> 获取map中所有的Value并以array的形式返回。 -