详情页标题前

阿里云日志服务SLSMap映射函数和运算符-云淘科技

详情页1

本文介绍Map映射函数和运算符的基本语法及示例。


注意 在日志服务分析语句中,表示字符串的字符必须使用单引号(”)包裹,无符号包裹或被双引号(””)包裹的字符表示字段名或列名。例如:’status’表示字符串status,status或”status”表示日志字段status。

函数名称 语法 说明
下标运算符 [x] 获取Map中目标键的
cardinality函数 cardinality(x) 计算Map的大小。
element_at函数 element_at(x, key) 获取Map中目标键的值。
histogram函数 histogram(x) 查询和分析结果进行分组,返回结果为JSON格式。
histogram_u函数 histogram_u(x) 对查询和分析结果进行分组,返回结果为多行多列格式。
map函数 map() 返回一个空Map。
map(x, y) 将两个数组映射为一个Map。
map_agg函数 map_agg(x, y) xy映射为一个Map。x为Map中的键,y为Map中的键值。当y存在多个值时,随机提取一个值作为键值。
map_concat函数 map_concat(x, y…) 将多个Map合并为一个Map。
map_filter函数 map_filter(x, lambda_expression) 结合Lambda表达式,用于过滤Map中的元素。
map_keys函数 map_keys(x) 提取Map中所有的键,并以数组形式返回。
map_values函数 map_values(x) 提取Map中所有键的值,并以数组形式返回。
multimap_agg函数 multimap_agg(x, y) xy映射为一个Map。x为Map中的键,y为Map中的键值,键值为数组格式。当y存在多个值时,提取所有的值作为键值。

下标运算符

下标运算符用于获取Map中的目标键的值。

语法

[x]

参数说明

参数 说明
x 参数值为varchar类型。

返回值类型

任意数据类型。

示例

日志服务数据加工日志中etl_context字段值为map类型,您可以使用下标运算符获取etl_context字段值中project的值。

  • 字段样例
    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" }
  • 查询和分析语句
    * | SELECT try_cast(json_parse(etl_context) AS map(varchar, varchar))['project']
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

cardinality函数

cardinality函数用于计算Map的大小。

语法

cardinality(x)

参数说明

参数 说明
x 参数值为map类型。

返回值类型

bigint类型。

示例

使用histogram函数获取各个请求方法对应的请求数量,再通过cardinality函数获取请求方法的种类数。

  • 查询和分析语句
    * |
    SELECT
      histogram(request_method) AS request_method,
      cardinality(histogram(request_method)) AS "kinds"
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

element_at函数

element_at函数用于获取Map中目标键的值。

语法

element_at(x, key)

参数说明

参数 说明
x 参数值为map类型。
key Map中的一个键。

返回值类型

任意数据类型。

示例

使用histogram函数获取各个请求方法对应的请求数量,然后通过element_at函数获取DELETE字段的值。

  • 查询和分析语句
    * |
    SELECT
      histogram(request_method) AS request_method,
      element_at(histogram(request_method),'DELETE') AS "count"
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

histogram函数

histogram函数用于对查询和分析结果进行分组,返回结果为JSON格式。类似于* | SELECT count(*) GROUP BY x

语法

histogram(x)

参数说明

参数 说明
x 参数值为任意数据类型。

返回值类型

map类型。

示例

使用histogram函数获取各个请求方法对应的请求数量。

  • 查询和分析语句
    * | SELECT histogram(request_method) AS request_method
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

histogram_u函数

histogram_u函数用于对查询和分析结果进行分组,返回结果为多行多列。

语法

histogram_u(x)

参数说明

参数 说明
x 参数值为任意数据类型。

返回值类型

bigint类型。

示例

使用histogram_u函数获取各个请求方法对应的请求数量,并以柱形图展示查询和分析结果。

  • 查询和分析语句
    *|SELECT  histogram_u(request_method) as request_method
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

map函数

map函数用于返回一个空Map或者将两个数组映射为一个Map。

语法

  • 返回一个空Map。
    map()
  • 将两个数组映射为一个Map。
    map(x,y) 

参数说明

参数 说明
x 参数值为array类型。
y 参数值为array类型。

返回值类型

map类型。

示例

  • 示例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)))
    • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技
  • 示例2:返回一个空Map。
    • 查询和分析语句
      *| SELECT map()
    • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

map_agg函数

map_agg函数用于将xy映射为一个Map。x为Map中的键,y为Map中的键值。当y存在多个值时,随机提取一个值作为键值。

语法

map_agg(x, y)

参数说明

参数 说明
x 参数值为任意数据类型。
y 参数值为任意数据类型。

返回值类型

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)
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

map_concat函数

map_concat函数用于将多个Map合并为一个Map。

语法

map_concat(x, y)

参数说明

参数 说明
x 参数值为map类型。
y 参数值为map类型。

返回值类型

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))
      )
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

map_filter函数

map_filter函数和Lambda表达式结合,用于过滤Map中的元素。

语法

map_filter(x, lambda_expression)

参数说明

参数 说明
x 参数值为map类型。
lambda_expression_expression Lambda表达式。更多信息,请参见Lambda表达式。

返回值类型

map类型。

示例

将两个数组映射为一个新的Map,且Map中的键值不为null。其中(k, v) -> v is not null为Lambda表达式。

  • 查询和分析语句
    * | SELECT map_filter(map(array[10, 20, 30], array['a', NULL, 'c']), (k, v) -> v is not null)
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

map_keys函数

map_keys函数用于提取Map中所有的键,并以数组形式返回。

语法

map_keys(x)

参数说明

参数 说明
x 参数值为map类型。

返回值类型

array类型。

示例

日志服务数据加工日志中etl_context字段值为map类型,您可以使用map_keys函数提取etl_context字段值中所有的键。

  • 字段样例
    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" }
  • 查询和分析语句
    * | SELECT map_keys(try_cast(json_parse(etl_context) AS map(varchar, varchar)))
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

map_values函数

map_values函数用于提取Map中所有键的值,并以数组形式返回。

语法

map_values(x)

参数说明

参数 说明
x 参数值为map类型。

返回值类型

array类型。

示例

日志服务数据加工日志中etl_context字段值为map类型,您可以使用map_values函数提取etl_context字段值中所有键的值。

  • 字段样例
    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" }
  • 查询和分析语句
    * | SELECT map_values(try_cast(json_parse(etl_context) AS map(varchar, varchar)))
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

multimap_agg函数

multimap_agg函数用于将xy映射为一个Map。x为Map中的键,y为Map中的键值,键值为数组格式。当y存在多个值时,提取所有的值作为键值。

语法

multimap_agg(x, y)

参数说明

参数 说明
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)
  • 查询和分析结果阿里云日志服务SLSMap映射函数和运算符-云淘科技

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/164125.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLS导入MySQL数据-云淘科技

    您可以将自建MySQL数据库或RDS MySQL数据库中的数据导入到日志服务,实现数据的查询分析、加工等操作。本文介绍导入MySQL数据的操作步骤。 前提条件 已创建MySQL数据库,并已设置具备最小读权限的数据库账号。 在MySQL数据库中添加白名单。 请根据数据导入任务所在Project的地域和数据库所在的网络环境,添加对应的IP地址白名单。IP地址列表…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLSHAVING子句-云淘科技

    HAVING子句用于指定过滤分组结果(GROUP BY)或聚合计算结果的条件。 语法 HAVING bool_expression 注意 HAVING子句用于过滤分组结果或聚合计算结果,WHERE子句用于在聚合计算之前过滤原始数据。 HAVING子句的过滤操作发生在分组(GROUP BY)之后,排序(ORDER BY)之前。 参数说明 参数 说明 bool_…

    2023年12月10日
  • 阿里云日志服务SLS统计图表(Pro版本)概述-云淘科技

    日志服务支持通过统计图表的方式对查询分析结果进行可视化展示。统计图表(Pro版本)支持展示多个查询分析结果,并支持对不同查询分析的结果进行个性化的可视化设置。 注意事项 已配置索引并开启分析功能,即在查询分析面板中打开对应字段的开启统计开关。具体操作,请参见配置索引。 执行查询分析语句(查询语句|分析语句)后,日志服务才会以统计图表方式展示查询分析结果。 图…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLSWeb应用防火墙-云淘科技

    本文介绍Web应用防火墙访问日志的字段详情。 字段 说明 __topic__ 日志主题,固定为waf_access_log。 owner_id 阿里云账号ID。 account_action 客户端请求命中的账户安全规则对应的防护动作。取值仅有block,表示拦截。更多信息,请参见WAF防护动作(action)说明。 account_rule_id 客户端请…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLSJSON函数-云淘科技

    本文介绍JSON函数的基本语法及示例。 日志服务支持如下JSON函数。 重要 在日志服务分析语句中,表示字符串的字符必须使用单引号(”)包裹,无符号包裹或被双引号(””)包裹的字符表示字段名或列名。例如:’status’表示字符串status,status或”status”表示日志字段status。 如果日志字段的值为JS…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。