详情页标题前

阿里云日志服务SLS数组函数和运算符-云淘科技

详情页1

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

日志服务支持如下数组函数和运算符。

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

函数名称

语法

说明

下标运算符

[x]

返回数组中的第x元素。等同于element_at函数。

array_agg函数

array_agg(x)

以数组形式返回x中的所有值。

array_distinct函数

array_distinct(x)

删除数组中重复的元素。

array_except函数

array_except(x, y)

计算两个数组的差集。

array_intersect函数

array_intersect(x, y)

计算两个数组的交集。

array_join函数

array_join(x, delimiter)

使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被忽略。

重要

使用array_join函数时,返回结果大小最大为1 KB,超出1 KB的数据会被截断。

array_join(x, delimiter, null_replacement)

使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被替换为null_replacement

重要

使用array_join函数时,返回结果大小最大为1 KB,超出1 KB的数据会被截断。

array_max函数

array_max(x)

获取数组中的最大值。

array_min函数

array_min(x)

获取数组中的最小值。

array_position函数

array_position(x, element)

获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。

array_remove函数

array_remove(x, element)

删除数组中指定的元素。

array_sort函数

array_sort(x)

对数组元素进行升序排序。如果有null元素,则null元素排在最后。

array_transpose函数

array_transpose(x)

对矩阵进行转置,即提取二维数组中索引相同的元素组成一个新的二维数组。

array_union函数

array_union(x, y)

计算两个数组的并集。

cardinality函数

cardinality(x)

计算数组中元素的个数。

concat函数

concat(x, y…)

将多个数组拼接为一个数组。

contains函数

contains(x, element)

判断数组中是否包含指定元素。如果包含,则返回true。

element_at函数

element_at(x, y)

返回数组中的第y个元素。

filter函数

filter(x, lambda_expression)

结合Lambda表达式,用于过滤数组中的元素。只返回满足Lambda表达式的元素。

flatten函数

flatten(x)

把将二维数组转换为一维数组。

reduce函数

reduce(x, lambda_expression)

根据Lambda表达式中的定义,对数组中的各个元素进行相加计算,然后返回计算结果。

reverse函数

reverse(x)

对数组中的元素进行反向排列。

sequence函数

sequence(x, y)

通过指定的起始值返回一个数组,其元素为起始值范围内一组连续且递增的值。递增间隔为默认值1。

sequence(x, y, step)

通过指定的起始值返回一个数组,其元素为起始值范围内一组连续且递增的值。自定义递增间隔。

shuffle函数

shuffle(x)

对数组元素进行随机排列。

slice函数

slice(x, start, length)

获取数组的子集。

transform函数

transform(x, lambda_expression)

将Lambda表达式应用到数组的每个元素中。

zip函数

zip(x, y…)

将多个数组合并为一个二维数组,且各个数组中下标相同的元素组成一个新的数组。

zip_with函数

zip_with(x, y, lambda_expression)

根据Lambda表达式中的定义将两个数组合并为一个数组。

下标运算符

下标运算符用于返回数组中的第x个元素。等同于element_at函数。

语法

[x]

参数说明

参数

说明

x

数组下标,从1开始。参数值为bigint类型。

返回值类型

返回指定元素的数据类型。

示例

返回number字段值中的第1个元素。

  • 字段样例

    number:[49,50,45,47,50]
  • 查询和分析语句

    * | SELECT cast(json_parse(number) as array(bigint)) [1]
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_agg函数

array_agg函数会以数组形式返回x中的所有值。

语法

array_agg (x)

参数说明

参数

说明

x

参数值为任意数据类型。

返回值类型

array类型。

示例

以数组形式返回status字段的值。

  • 查询和分析语句

    * | SELECT array_agg(status) AS array
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_distinct函数

array_distinct函数用于删除数组中重复的元素。

语法

array_distinct(x)

参数说明

参数

说明

x

参数值为array类型。

返回值类型

array类型。

示例

删除number字段值中重复的元素。

  • 字段样例

    number:[49,50,45,47,50]
  • 查询和分析语句

    *| SELECT array_distinct(cast(json_parse(number) as array(bigint)))
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_except函数

array_except函数用于计算两个数组的差集。

语法

array_except(x, y)

参数说明

参数

说明

x

参数值为array类型。

y

参数值为array类型。

返回值类型

array类型。

示例

计算数组[1,2,3,4,5]和[1,3,5,7]的差集。

  • 查询和分析语句

    * | SELECT array_except(array[1,2,3,4,5],array[1,3,5,7])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_intersect函数

array_intersect函数用于计算两个数组的交集。

语法

array_intersect(x, y)

参数说明

参数

说明

x

参数值为array类型。

y

参数值为array类型。

返回值类型

array类型。

示例

计算数组[1,2,3,4,5]和[1,3,5,7]的交集。

  • 查询和分析语句

    * | SELECT array_intersect(array[1,2,3,4,5],array[1,3,5,7])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_join函数

array_join函数使用指定的连接符将数组中的元素拼接为一个字符串。

语法

  • 使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被忽略。

    array_join(x, delimiter)
  • 使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被替换为null_replacement

    array_join(x, delimiter,null_replacement)

参数说明

参数

说明

x

参数值为任意array类型。

delimiter

连接符,可以为字符串。

null_replacement

用于替换null元素的字符串。

返回值类型

varchar类型。

示例

使用空格将数组[null, ‘Log’,’Service’]中的元素拼接为一个字符串,其中null元素替换为Alicloud。

  • 查询和分析语句

    * | SELECT array_join(array[null,'Log','Service'],' ','Alicloud')
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_max函数

array_max函数用于获取数组中的最大值。

语法

array_max(x) 

参数说明

参数

说明

x

参数值为array类型。

重要

如果数组中包含null,则返回结果为null。

返回值类型

与参数值中元素的数据类型一致。

示例

获取数组中的最大值。

  • 字段样例

    number:[49,50,45,47,50]
  • 查询和分析语句

    *| SELECT array_max(try_cast(json_parse(number) as array(bigint))) AS max_number
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_min函数

array_min函数用于获取数组中的最小值。

语法

array_min(x) 

参数说明

参数

说明

x

参数值为array类型。

重要

如果数组中包含null,则返回结果为null。

返回值类型

与参数值中元素的数据类型一致。

示例

获取数组中的最小值。

  • 字段样例

    number:[49,50,45,47,50]
  • 查询和分析语句

    *| SELECT array_min(try_cast(json_parse(number) as array(bigint))) AS min_number
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_position函数

array_position函数用于获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。

语法

array_position(x, element)

参数说明

参数

说明

x

参数值为数组类型。

element

数组中的一个元素。

说明

如果待获取下标的元素为null ,则返回结果也为null 。

返回值类型

bigint类型。

示例

返回数组[49,45,47]中45的下标。

  • 查询和分析语句

    * | SELECT array_position(array[49,45,47],45)
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_remove函数

array_remove函数用于删除数组中指定的元素。

语法

array_remove(x, element)

参数说明

参数

说明

x

参数值为array类型。

element

数组中的一个元素。

说明

如果待删除的元素为null ,则返回结果也为null。

返回值类型

array类型。

示例

删除数组[49,45,47]中45。

  • 查询和分析语句

    * | SELECT array_remove(array[49,45,47],45)
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_sort函数

array_sort函数用于对数组元素进行升序排序。如果有null元素,则null元素排在最后。

语法

array_sort(x)

参数说明

参数

说明

x

参数值为array类型。

返回值类型

array类型。

示例

对数组[‘b’, ‘d’, null, ‘c’, ‘a’]进行升序排序。

  • 查询和分析语句

    * | SELECT array_sort(array['b','d',null,'c','a'])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_transpose函数

array_transpose函数用于对矩阵进行转置,即提取二维数组中索引相同的元素组成一个新的二维数组。

语法

array_transpose(x)

参数说明

参数

说明

x

参数值为array(double)类型。

返回值类型

array(double)类型。

示例

提取二维数组中索引相同的元素组成一个新的二维数组,例如数组[0,1,2,3]、[10,19,18,17]、[9,8,7]中的0、10、9的索引都为1,则组成数组[0.0,10.0,9.0]。

  • 查询和分析语句

    * | SELECT array_transpose(array[array[0,1,2,3],array[10,19,18,17],array[9,8,7]])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

array_union函数

array_union函数用于计算两个数组的并集。

语法

array_union(x, y)

参数说明

参数

说明

x

参数值为array类型。

y

参数值为array类型。

返回值类型

array类型。

示例

计算数组[1,2,3,4,5]和[1,3,5,7]的并集。

  • 查询和分析语句

    * | SELECT array_union(array[1,2,3,4,5],array[1,3,5,7])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

cardinality函数

cardinality函数用于计算数组中元素的个数。

语法

cardinality(x)

参数说明

参数

说明

x

参数值为array类型。

返回值类型

bigint类型。

示例

计算number字段值中元素的个数。

  • 字段样例

    number:[49,50,45,47,50]
  • 查询和分析语句

    *| SELECT cardinality(cast(json_parse(number) as array(bigint)))
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

concat函数

concat函数用于将多个数组拼接为一个数组。

语法

concat(x, y…)

参数说明

参数

说明

x

参数值为array类型。

y

参数值为array类型。

返回值类型

array类型。

示例

将数组[‘red’,’blue’]和[‘yellow’,’green’]拼接为一个数组。

  • 查询和分析语句

    * | SELECT concat(array['red','blue'],array['yellow','green'])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

contains函数

contains函数用于判断数组中是否包含指定元素。如果包含,则返回true。

语法

contains(x, element)

参数说明

参数

说明

x

参数值为数组类型。

element

数组中的一个元素。

返回值类型

boolean类型。

示例

判断region字段值中是否包含cn-beijing。

  • 字段样例

    region:["cn-hangzhou","cn-shanghai","cn-beijing"]
  • 查询和分析语句

    *| SELECT contains(cast(json_parse(region) as array(varchar)),'cn-beijing')
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

element_at函数

element_at函数用于返回数组中的第y个元素。

语法

element_at(x, y)

参数说明

参数

说明

x

参数值为array类型。

y

数组下标,从1开始。参数值为bigint类型。

返回值类型

任意数据类型。

示例

返回number字段值中的第2个元素。

  • 字段样例

    number:[49,50,45,47,50]
  • 查询和分析语句

    * |
    SELECT
      element_at(cast(json_parse(number) AS array(varchar)), 2)
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

filter函数

filter函数和Lambda表达式结合,用于过滤数组中的元素。只返回满足Lambda表达式的元素。

语法

filter(x, lambda_expression)

参数说明

参数

说明

x

参数值为array类型。

lambda_expression

Lambda表达式。更多信息,请参见Lambda表达式。

返回值类型

array类型。

示例

返回数组[5,-6,null,7]中大于0的元素,其中x -> x > 0为Lambda表达式。

  • 查询和分析语句

    * | SELECT filter(array[5,-6,null,7],x -> x > 0)
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

flatten函数

flatten函数用于将二维数组转换为一维数组。

语法

flatten(x)

参数说明

参数

说明

x

参数值为array类型。

返回值类型

array类型。

示例

将数组[array[1,2,3,4],array[5,2,2,4]转换为一维数组。

  • 查询和分析语句

    * | SELECT flatten(array[array[1,2,3,4],array[5,2,2,4]])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

reduce函数

reduce函数将根据Lambda表达式中的定义,对数组中的各个元素进行相加计算,然后返回计算结果。

语法

reduce(x, lambda_expression)

参数说明

参数

说明

x

参数值为array类型。

lambda_expression

Lambda表达式。更多信息,请参见Lambda表达式。

返回值类型

bigint类型。

示例

返回数组[5, 20, 50]中各个元素相加的结果。

  • 查询和分析语句

    * | SELECT reduce(array[5,20,50],0,(s, x) -> s + x, s -> s)
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

reverse函数

reverse函数用于对数组中的元素进行反向排列。

语法

reverse(x)

参数说明

参数

说明

x

参数值为array类型。

返回值类型

array类型。

示例

将数组[1,2,3,4,5]中的元素反向排序。

  • 查询和分析语句

    * | SELECT reverse(array[1,2,3,4,5])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

sequence函数

sequence函数通过指定的起始值返回一个数组,其元素为起始值范围内一组连续且递增的值。

语法

  • 递增间隔为默认值1。

    sequence(x, y)
  • 自定义递增间隔。

    sequence(x, y, step)

参数说明

参数

说明

x

参数值为bigint类型、timestamp类型(Unix时间戳、日期和时间表达式)。

y

参数值为bigint类型、timestamp类型(Unix时间戳、日期和时间表达式)。

step

数值间隔。

当参数值为日期和时间表达式时,step格式如下:

  • interval ' n' year to month,表示间隔为n年。

  • interval 'n' day to second,表示间隔为n天。

返回值类型

array类型。

示例

  • 示例1:返回0~10之间的偶数。

    • 查询和分析语句

      * | SELECT sequence(0,10,2)
    • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

  • 示例2:返回2017-10-23到2021-08-12之间的日期,间隔为1年。

    • 查询和分析语句

      ww* | SELECT  sequence(from_unixtime(1508737026),from_unixtime(1628734085),interval '1' year to month )
    • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

  • 示例3:返回1628733298,1628734085之间的Unix时间戳,间隔为60秒。

    • 查询和分析语句

      * | SELECT  sequence(1628733298,1628734085,60)
    • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

shuffle函数

shuffle函数用于对数组元素进行随机排列。

语法

shuffle(x)

参数说明

参数

说明

x

参数值为array类型。

返回值类型

array类型。

示例

对数组[1,2,3,4,5]中的元素进行随机排序。

  • 查询和分析语句

    *| SELECT shuffle(array[1,2,3,4,5])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

slice函数

slice函数用于返回数组的子集。

语法

slice(x, start, length)

参数说明

参数

说明

x

参数值为array类型。

start

指定索引开始的位置。

  • 如果start为负数,则从末尾开始。

  • 如果start为正数,则从头部开始。

length

指定子集中元素的个数。

返回值类型

array类型。

示例

返回数组[1,2,4,5,6,7,7]的子集,从第三个元素开始返回,子集元素个数为2。

  • 查询和分析语句

    * | SELECT slice(array[1,2,4,5,6,7,7],3,2)
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

transform函数

transform函数用于将Lambda表达式应用到数组的每个元素中。

语法

transform(x, lambda_expression)

参数说明

参数

说明

x

参数值为array类型。

lambda_expression

Lambda表达式。更多信息,请参见Lambda表达式。

返回值类型

array类型。

示例

将数组[5,6]中的各个元素加1,然后返回。

  • 查询和分析语句

    * | SELECT transform(array[5,6],x -> x + 1)
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

zip函数

zip函数用于将多个数组合并为一个二维数组,且各个数组中下标相同的元素组成一个新的数组。

语法

zip(x, y...) 

参数说明

参数

说明

x

参数值为array类型。

y

参数值为array类型。

返回值类型

array类型。

示例

将数组[1,2,3]、[‘1b’,null,’3b’]和[1,2,3]合并为一个二维数组。

  • 查询和分析语句

    * | SELECT zip(array[1,2,3], array['1b',null,'3b'],array[1,2,3])
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

zip_with函数

zip_with函数将根据Lambda表达式中的定义将两个数组合并为一个数组。

语法

zip_with(x, y, lambda_expression)

参数说明

参数

说明

x

参数值为array类型。

y

参数值为array类型。

lambda_expression

Lambda表达式。更多信息,请参见Lambda表达式。

返回值类型

array类型。

示例

使用Lambda表达式(x, y) -> x + y使数组[1,2]和[3,4]中的元素分别相加后,以数组类型返回相加的结果。

  • 查询和分析语句

    SELECT zip_with(array[1,2], array[3,4],(x,y) -> x + y)
  • 查询和分析结果阿里云日志服务SLS数组函数和运算符-云淘科技

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

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

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

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

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

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

(0)
上一篇 2023年12月10日 上午3:30
下一篇 2023年12月10日 上午3:32
详情页2

相关推荐

  • 阿里云大数据开发治理平台 DataWorksSuspendInstance-云淘科技

    调用SuspendInstance暂停实例。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 请求参数 名称 类型 是否必选 示例值 描述 Action String 是 SuspendInstance 要执行的操作。 InstanceId Lon…

  • 阿里云云原生大数据计算服务 MaxComputePyODPS API概述-云淘科技

    本文为您提供了PyODPS API文档链接,其中包含各函数的参数说明及示例。 ODPS详解(Definitions) PyODPS DataFrame指南(DataFrame Reference) 内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家阿里云企业补贴进行中: 马上申请腾讯云限时活动1折起,即将结束: 马上收藏同尘科技为腾讯云授权服务中心…

  • 阿里云日志服务SLS事件配置-云淘科技

    事件配置为原始日志提供可视化、易操作的日志钻取功能,方便您获取更详尽的日志信息,包括预设事件配置和高级事件配置。本文介绍如何在日志服务控制台为原始日志配置事件。 前提条件 已开启并配置索引。更多信息,请参见配置索引。 如果配置高级事件为打开日志库,则需提前创建目标日志库。更多信息,请参见创建Logstore。 如果配置高级事件为打开快速查询,则需提前创建目标…

    2023年12月10日
  • 阿里云RDS数据库RDS SQL Server CPU使用率高问题-云淘科技

    CPU使用率较高时,容易影响查询性能。本文介绍如何查看CPU使用情况以及排查CPU问题。 查看CPU使用情况 RDS管理控制台提供多种查看CPU使用情况的方法: 监控与报警 在控制台的监控与报警页面,单击旧版监控页签,在资源监控内,可以查看CPU使用率信息。 自治服务 实例不能是RDS SQL Server 2008 R2云盘版。 在控制台的自治服务 &gt…

    阿里云数据库 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLSListConfig-云淘科技

    调用ListConfig接口查询指定Project下所有的Logtail配置。 接口说明 Host由Project名称和日志服务Endpoint构成,您需要在Host中指定Project。 已创建并获取AccessKey。更多信息,请参见访问密钥。 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或…

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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