project:"datalab-148****6461-cn-chengdu"
logstore:"internal-etl-log"
consumer_group:"etl-83****4d1965"
consumer:"etl-b2d40ed****c8d6-291294"
shard_id:"0" }
查询和分析语句
* | SELECT try_cast(json_parse(etl_context) AS map(varchar, varchar))['project']
查询和分析结果
cardinality函数
cardinality函数用于计算Map的大小。
语法
cardinality(x)
参数说明
SELECT
histogram(request_method) AS request_method,
cardinality(histogram(request_method)) AS "kinds"
查询和分析结果
element_at函数
element_at函数用于获取Map中目标键的值。
语法
element_at(x, key)
参数说明
SELECT
histogram(request_method) AS request_method,
element_at(histogram(request_method),'DELETE') AS "count"
查询和分析结果
histogram函数
histogram函数用于对查询和分析结果进行分组,返回结果为JSON格式。类似于
* | SELECT count(*) GROUP BY
x
。
语法
histogram(x)
参数说明
使用histogram函数获取各个请求方法对应的请求数量。
查询和分析语句
* | SELECT histogram(request_method) AS request_method
查询和分析结果
histogram_u函数
histogram_u函数用于对查询和分析结果进行分组,返回结果为多行多列。
语法
histogram_u(x)
参数说明
使用histogram_u函数获取各个请求方法对应的请求数量,并以柱形图展示查询和分析结果。
查询和分析语句
*|SELECT histogram_u(request_method) as request_method
查询和分析结果
map函数
map函数用于返回一个空Map或者将两个数组映射为一个Map。
返回一个空Map。
map()
将两个数组映射为一个Map。
map(x,y)
示例1:
class
字段表示班级,
number
字段表示班级人数,字段值为array类型。现使用map函数将两个字段的值(两个数组)映射为一个Map,将班级和班级人数一一对应。
字段样例
class:["class01","class02","class03","class04","class05"]
number:[49,50,45,47,50]
查询和分析语句
* | SELECT map(try_cast(json_parse(class) AS array(varchar)) ,try_cast(json_parse(number) AS array(bigint)))
查询和分析结果
示例2:返回一个空Map。
查询和分析语句
*| SELECT map()
查询和分析结果
map类型。
提取
request_method
字段值和
request_time
字段值,然后映射为一个Map。
request_method
字段值为Map中的键,
request_time
字段值为Map中的键值。
字段样例
request_method:POST
request_time:80
查询和分析语句
* | SELECT map_agg(request_method,request_time)
查询和分析结果
map_concat函数
map_concat函数用于将多个Map合并为一个Map。
语法
map_concat(x, y)
参数说明
map类型。
日志服务数据加工日志中
etl_context
字段值和
progress
字段值都为map类型,您可以使用map_concat函数将这两个字段值合并为一个Map。
字段示例
etl_context: {
project:"datalab-148****6461-cn-chengdu"
logstore:"internal-etl-log"
consumer_group:"etl-83****4d1965"
consumer:"etl-b2d40ed****c8d6-291294"
shard_id:"0" }
progress: {
accept:3
dropped:0
delivered:3
failed:0 }
查询和分析语句
* |
SELECT
map_concat(
cast (
json_parse(etl_context) AS map(varchar, varchar)
cast (json_parse(progress) AS map(varchar, varchar))
查询和分析结果
map_filter函数
map_filter函数和Lambda表达式结合,用于过滤Map中的元素。
语法
map_filter(x, lambda_expression)
参数说明
查询和分析语句* | SELECT map_filter(map(array[10, 20, 30], array['a', NULL, 'c']), (k, v) -> v is not null)
查询和分析结果
map_keys函数
map_keys函数用于提取Map中所有的键,并以数组形式返回。
语法
map_keys(x)
参数说明
project:"datalab-148****6461-cn-chengdu"
logstore:"internal-etl-log"
consumer_group:"etl-83****4d1965"
consumer:"etl-b2d40ed****c8d6-291294"
shard_id:"0" }
查询和分析语句
* | SELECT map_keys(try_cast(json_parse(etl_context) AS map(varchar, varchar)))
查询和分析结果
map_values函数
map_values函数用于提取Map中所有键的值,并以数组形式返回。
语法
map_values(x)
参数说明
project:"datalab-148****6461-cn-chengdu"
logstore:"internal-etl-log"
consumer_group:"etl-83****4d1965"
consumer:"etl-b2d40ed****c8d6-291294"
shard_id:"0" }
查询和分析语句
* | SELECT map_values(try_cast(json_parse(etl_context) AS map(varchar, varchar)))
查询和分析结果
multimap_agg函数
multimap_agg函数用于将
x
和
y
映射为一个Map。
x
为Map中的键,
y
为Map中的键值,键值为数组格式。当
y
存在多个值时,提取所有的值作为键值。
语法
multimap_agg(x, y)
参数说明
map类型。
提取
request_method
字段和
request_time
字段的所有值,然后映射为一个Map。
request_method
字段值为Map中的键,
request_time
字段值为Map中的键值,键值为数组格式。
字段样例
request_method:POST
request_time:80
查询和分析语句
* | SELECT multimap_agg(request_method,request_time)
查询和分析结果